Archive for the ‘Java 2D’ Category

  1. Hello, Java 2D(Jasmin) World!

    Posted on 1月 4th, 2013 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Jasmin による Java 2D の使用例となっている。

    ソースコード

    ; Produced by NeoJasminVisitor (tinapoc)
    ; http://tinapoc.sourceforge.net
    ; The original JasminVisitor is part of the BCEL
    ; http://jakarta.apache.org/bcel/
    ; Sun Dec 02 01:34:06 JST 2012
     
    .bytecode 50.0
    .source Hello.java
    .class public Hello
    .super javax/swing/JFrame
     
    .method public static main([Ljava/lang/String;)V
        .limit stack 3
        .limit locals 2
        .var 0 is arg0 [Ljava/lang/String; from Label0 to Label1
     
        Label0:
    .line 8
           0: new Hello
           3: dup
           4: ldc "Hello, World"
           6: invokespecial Hello/<init>(Ljava/lang/String;)V
           9: astore_1
     
        .line 9
          10: aload_1
          11: iconst_1
          12: invokevirtual Hello/setVisible(Z)V
     
        Label1:
    .line 10
          15: return
     
    .end method
     
    .method  <init>(Ljava/lang/String;)V
        .limit stack 3
        .limit locals 3
        .var 0 is this LHello; from Label0 to Label1
        .var 1 is arg0 Ljava/lang/String; from Label0 to Label1
     
        Label0:
    .line 13
           0: aload_0
           1: aload_1
           2: invokespecial javax/swing/JFrame/<init>(Ljava/lang/String;)V
     
        .line 14
           5: aload_0
           6: iconst_3
           7: invokevirtual Hello/setDefaultCloseOperation(I)V
     
        .line 15
          10: aload_0
          11: sipush 640
          14: sipush 480
          17: invokevirtual Hello/setSize(II)V
     
        .line 17
          20: new HelloPanel
          23: dup
          24: invokespecial HelloPanel/<init>()V
          27: astore_2
     
        .line 18
          28: aload_0
          29: aload_2
          30: invokevirtual Hello/add(Ljava/awt/Component;)Ljava/awt/Component;
          33: pop
     
        Label1:
    .line 19
          34: return
     
    .end method
    ; Produced by NeoJasminVisitor (tinapoc)
    ; http://tinapoc.sourceforge.net
    ; The original JasminVisitor is part of the BCEL
    ; http://jakarta.apache.org/bcel/
    ; Sun Dec 02 01:34:19 JST 2012
     
    .bytecode 50.0
    .source Hello.java
    .class  HelloPanel
    .super javax/swing/JPanel
     
    .method  <init>()V
        .limit stack 1
        .limit locals 1
        .var 0 is this LHelloPanel; from Label0 to Label1
     
        Label0:
    .line 22
           0: aload_0
           1: invokespecial javax/swing/JPanel/<init>()V
     
        Label1:
           4: return
     
    .end method
     
    .method public paintComponent(Ljava/awt/Graphics;)V
        .limit stack 4
        .limit locals 3
        .var 0 is this LHelloPanel; from Label0 to Label1
        .var 1 is arg0 Ljava/awt/Graphics; from Label0 to Label1
     
        Label0:
    .line 24
           0: aload_1
           1: checkcast java/awt/Graphics2D
           4: astore_2
     
        .line 25
           5: aload_2
           6: ldc "Hello, Java2D World!"
           8: iconst_0
           9: bipush 16
          11: invokevirtual java/awt/Graphics2D/drawString(Ljava/lang/String;II)V
     
        Label1:
    .line 26
          14: return
     
    .end method

    コンパイル&実行方法

    C:¥> java -jar jasmin.jar Hello.j HelloPanel.j
    C:¥> javaw Hello

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  2. Hello, Java 2D(Fantom) World!

    Posted on 12月 29th, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Fantom による Java 2D の使用例となっている。

    ソースコード

    using [java] java.awt
    using [java] javax.swing
    using concurrent
     
    class Hello
    {
        Void main()
        {
            canvas := Canvas()
            frame := JFrame("Hello, World")
            {
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
                add(canvas)
                setSize(640, 480)
                setVisible(true)
                canvas.createBufferStrategy(2)
                strategy := canvas.getBufferStrategy
                g2 := (Graphics2D)strategy.getDrawGraphics
                while(true)
                {
                    g2.drawString("Hello, Java 2D World!", 0, 16 )
                    strategy.show
                    Actor.sleep(200ms)
                }
            }
            Actor.sleep(Duration.maxVal)
        }
    }

    実行方法

    C:¥> fan hello.fan

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  3. Hello, Java 2D(Rhino) World!

    Posted on 12月 23rd, 2012 by cx20

    Java 2D(Rhino)

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Rhino による Java 2D の使用例となっている。

    ソースコード

    importPackage(java.awt);
    importPackage(javax.swing);
     
    var frame = new JFrame();
    frame.setTitle("Hello, World");
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setSize(640,480);
     
    canvas = new Canvas();
     
    frame.add(canvas);
    frame.setVisible(true);
     
    canvas.createBufferStrategy(2);
    strategy = canvas.getBufferStrategy();
    g2 = strategy.getDrawGraphics();
    while(true)
    {
        g2.drawString("Hello, Java 2D World!", 0, 16 );
        strategy.show();
        java.lang.Thread.sleep(200);
    }
     
    while(1) {java.lang.Thread.sleep(1000);}

    コンパイル&実行方法

    C:¥> jrunscript hello.js

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  4. Hello, Java 2D(Tcl/Java) World!

    Posted on 12月 17th, 2012 by cx20

    Java 2D(Tcl/Java)

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Tcl/Java による Java 2D の使用例となっている。

    ソースコード

    package require java
     
    java::import javax.swing.JFrame
    java::import java.awt.Canvas
    java::import java.awt.Graphics
    java::import java.awt.Graphics2D
     
    set frame [java::new JFrame] 
    $frame setDefaultCloseOperation [java::field JFrame EXIT_ON_CLOSE]
    $frame setTitle "Hello, World"
    $frame setSize 640 480
    set canvas [java::new Canvas]
    $frame add $canvas
    $frame setVisible true
     
    $canvas createBufferStrategy 2
    set strategy [$canvas getBufferStrategy]
    set g [$strategy getDrawGraphics]
    while { true } {
        $g {drawString java.lang.String int int} "Hello, Java 2D World!" 0 16
        $strategy show
    }
     
    vwait done

    コンパイル&実行方法

    C:¥> jaclsh hello.tcl

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  5. Hello, Java 2D(BeanShell) World!

    Posted on 12月 11th, 2012 by cx20

    Java 2D(BeanShell)

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は BeanShell による Java 2D の使用例となっている。

    ソースコード

    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import javax.swing.*;
     
    class Hello extends JFrame {
        Hello( title ) {
            super( title );
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(640, 480);
     
            panel = new HelloPanel();
            add( panel );
        }
    }
     
    class HelloPanel extends JPanel {
        void paintComponent(Graphics g) {
            g2 = (Graphics2D)g;
            g.drawString("Hello, Java2D World!", 0, 16);
        }
    }
     
    frame = new Hello("Hello, World");
    frame.setVisible(true);

    コンパイル&実行方法

    C:¥> SET CLASSPATH=bsh-2.0b4.jar;%CLASSPATH%
    C:¥> java bsh.Interpreter hello.bsh

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  6. Hello, Java 2D(Clojure) World!

    Posted on 12月 5th, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Clojure による Java 2D の使用例となっている。

    ソースコード

    (import 
      (javax.swing JFrame)
      (javax.swing JPanel)
      (java.awt Graphics)
      (java.awt Graphics2D))
     
    (defn create-panel []
      (proxy [JPanel] []
        (paintComponent [g]
          (.drawString g "Hello, Java 2D World!" 0 16))))
     
    (def panel
      (create-panel))
     
    (def frame
      (JFrame.))
     
    (doto frame
      (.setDefaultCloseOperation
        javax.swing.WindowConstants/EXIT_ON_CLOSE)
      (.add panel)
      (.setSize 640 480)
      (.setTitle "Hello, World")
      (.setVisible true))

    実行方法

    C:¥> clj Hello.py

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  7. Hello, Java 2D(Jython) World!

    Posted on 11月 29th, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Jython による Java 2D の使用例となっている。

    ソースコード

    import java
     
    from java.awt import Graphics
    from java.awt import Graphics2D
    from javax.swing import JFrame
    from javax.swing import JPanel
     
    class HelloFrame(JFrame):
        def __init__(self,title):
            self.setTitle( title )
            self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
            self.setSize(640, 480)
     
            panel = HelloPanel()
            self.add( panel )
     
    class HelloPanel(JPanel):
        def paintComponent(self,g):
            g.drawString("Hello, Java2D World!", 0, 16)
     
    if __name__ == '__main__':
        frame = HelloFrame("Hello, World")
        frame.setVisible(True)

    コンパイル&実行方法

    C:¥> jython Hello.py

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  8. Hello, Java 2D(JRuby) World!

    Posted on 11月 23rd, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は JRuby による Java 2D の使用例となっている。

    ソースコード

    require 'java'
     
    import 'java.awt.Graphics'
    import 'java.awt.Graphics2D'
    import 'javax.swing.JFrame'
    import 'javax.swing.JPanel'
     
    class HelloFrame < JFrame
        def initialize( title )
            super( title )
            self.setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE)
            self.setSize(640, 480)
     
            @panel = HelloPanel.new()
            add( @panel )
        end
    end
     
    class HelloPanel < JPanel
        def paintComponent(g)
            @g2 = g
            @g2.drawString("Hello, Java2D World!", 0, 16)
        end
    end
     
    @frame = HelloFrame.new("Hello, World")
    @frame.setVisible(true)

    コンパイル&実行方法

    C:¥> jrubyw Hello.rb

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  9. Hello, Java 2D(Scala) World!

    Posted on 11月 17th, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Scala による Java 2D の使用例となっている。

    ソースコード

    import java.awt.Graphics
    import java.awt.Graphics2D
    import javax.swing._
     
    object Hello {
        def main(args: Array[String]) {
            var frame = new HelloFrame("Hello, World")
            frame.setVisible(true)
        }
    }
     
    class HelloFrame( title: String ) extends JFrame {
        setTitle( title )
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
        setSize(640, 480)
     
        var panel = new HelloPanel()
        add( panel )
    }
     
    class HelloPanel extends JPanel {
        override def paintComponent(g: Graphics) {
            var g2 = g
            g2.drawString("Hello, Java2D World!", 0, 16)
        }
    }

    コンパイル&実行方法

    C:¥> scalac Hello.scala
    C:¥> scala Hello

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  10. Hello, Java 2D(Groovy) World!

    Posted on 11月 11th, 2012 by cx20

    Java 2D

    Java 2D は Java による 2D グラフィックライブラリである。
    以下は Groovy による Java 2D の使用例となっている。

    ソースコード

    import java.awt.Graphics
    import java.awt.Graphics2D
    import javax.swing.*
     
    class Hello extends JFrame {
     
        static void main(args) {
            Hello frame = new Hello("Hello, World")
            frame.setVisible(true)
        }
     
        Hello( String title ) {
            super( title )
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
            setSize(640, 480)
     
            HelloPanel panel = new HelloPanel()
            add( panel )
        }
    }
     
    class HelloPanel extends JPanel {
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D)g
            g2.drawString("Hello, Java2D World!", 0, 16)
        }
    }

    コンパイル&実行方法

    C:¥> groovyw Hello.groovy

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Java 2D World!                     |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+