Archive for the ‘AWT’ Category

  1. Hello, AWT(Jasmin) World!

    Posted on 12月 31st, 2012 by cx20

    AWT(Java)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Jasmin による AWT の使用例となっている。

    ソースコード

    ; Produced by NeoJasminVisitor (tinapoc)
    ; http://tinapoc.sourceforge.net
    ; The original JasminVisitor is part of the BCEL
    ; http://jakarta.apache.org/bcel/
    ; Sun Dec 02 00:54:44 JST 2012
     
    .bytecode 51.0
    .source Hello.java
    .class public Hello
    .super java/awt/Frame
     
    .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 6
           0: new Hello
           3: dup
           4: ldc "Hello, World"
           6: invokespecial Hello/<init>(Ljava/lang/String;)V
           9: astore_1
     
        .line 7
          10: aload_1
          11: iconst_1
          12: invokevirtual Hello/setVisible(Z)V
     
        Label1:
    .line 8
          15: return
     
    .end method
     
    .method  <init>(Ljava/lang/String;)V
        .limit stack 4
        .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 11
           0: aload_0
           1: aload_1
           2: invokespecial java/awt/Frame/<init>(Ljava/lang/String;)V
     
        .line 13
           5: aload_0
           6: new java/awt/FlowLayout
           9: dup
          10: iconst_0
          11: invokespecial java/awt/FlowLayout/<init>(I)V
          14: invokevirtual Hello/setLayout(Ljava/awt/LayoutManager;)V
     
        .line 15
          17: new java/awt/Label
          20: dup
          21: ldc "Hello, AWT World!"
          23: invokespecial java/awt/Label/<init>(Ljava/lang/String;)V
          26: astore_2
     
        .line 16
          27: aload_0
          28: aload_2
          29: invokevirtual Hello/add(Ljava/awt/Component;)Ljava/awt/Component;
          32: pop
     
        .line 18
          33: aload_0
          34: new HelloWindowAdapter
          37: dup
          38: invokespecial HelloWindowAdapter/<init>()V
          41: invokevirtual Hello/addWindowListener(Ljava/awt/event/WindowListener;)V
     
        .line 19
          44: aload_0
          45: sipush 640
          48: sipush 480
          51: invokevirtual Hello/setSize(II)V
     
        Label1:
    .line 20
          54: 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 00:54:57 JST 2012
     
    .bytecode 51.0
    .source Hello.java
    .class  HelloWindowAdapter
    .super java/awt/event/WindowAdapter
     
    .method  <init>()V
        .limit stack 1
        .limit locals 1
        .var 0 is this LHelloWindowAdapter; from Label0 to Label1
     
        Label0:
    .line 24
           0: aload_0
           1: invokespecial java/awt/event/WindowAdapter/<init>()V
     
        Label1:
           4: return
     
    .end method
     
    .method public windowClosing(Ljava/awt/event/WindowEvent;)V
        .limit stack 1
        .limit locals 2
        .var 0 is this LHelloWindowAdapter; from Label0 to Label1
        .var 1 is arg0 Ljava/awt/event/WindowEvent; from Label0 to Label1
     
        Label0:
    .line 26
           0: iconst_0
           1: invokestatic java/lang/System/exit(I)V
     
        Label1:
    .line 27
           4: return
     
    .end method

    コンパイル&実行方法

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

    実行結果

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

    Posted on 12月 25th, 2012 by cx20

    AWT(Fantom)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Fantom による AWT の使用例となっている。

    ソースコード

    using [java] java.lang
    using [java] java.awt
    using [java] java.awt.event
    using concurrent
     
    class Hello
    {
        Void main()
        {
            label := Label("Hello, AWT World!")
            frame := Frame("Hello, World")
            {
                addWindowListener( HelloWindowAdapter.make|WindowEvent e| {})
                add(label)
                setSize(640, 480)
                setLayout(FlowLayout(FlowLayout.LEFT))
                setVisible(true)
            }
     
            Actor.sleep(Duration.maxVal)
        }
    }
     
    class HelloWindowAdapter : WindowAdapter
    {
        new make(|WindowEvent| cb) { this.cb = cb }
        override Void windowClosing(WindowEvent? e) { System.exit(0) }
        |WindowEvent| cb
    }

    実行方法

    C:¥> fan hello.fan

    実行結果

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

    Posted on 12月 19th, 2012 by cx20

    AWT(Rhino)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Rhino による AWT の使用例となっている。

    ソースコード

    importPackage(java.awt);
    importPackage(java.awt.event);
     
    var frame = new Frame();
    frame.setTitle("Hello, World");
    frame.addWindowListener(function(e, methodName) {
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
            java.lang.System.exit(0);
        }
    });
    frame.setSize(640,480);
    frame.setLayout(new FlowLayout(FlowLayout.LEFT));
     
    var label = new Label("Hello, AWT World!");
    frame.add(label);
    frame.setVisible(true);
     
    while(1) {java.lang.Thread.sleep(1000);}

    実行方法

    C:¥> jrunscript hello.js

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  4. Hello, AWT(BeanShell) World!

    Posted on 12月 7th, 2012 by cx20

    AWT(BeanShell)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は BeanShell による AWT の使用例となっている。

    ソースコード

    import java.awt.*;
    import java.awt.event.*;
     
    class Hello extends Frame {
        Hello( String title ) {
            super( title );
            addWindowListener(new HelloWindowAdapter());
            setSize(640, 480);
            setLayout(new FlowLayout(FlowLayout.LEFT));
            label = new Label("Hello, AWT World!");
            add(label);
        }
    }
     
    class HelloWindowAdapter extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
     
    Hello 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, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  5. Hello, AWT(Clojure) World!

    Posted on 12月 1st, 2012 by cx20

    AWT(Clojure)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Clojure による AWT の使用例となっている。

    ソースコード

    (import (java.awt Frame)
            (java.awt Label)
            (java.awt FlowLayout)
            (java.awt.event WindowAdapter))
     
    (def frame
      (Frame.))
     
    (def layout
      (FlowLayout. FlowLayout/LEFT))
     
    (def label
      (Label. "Hello, Swing World!"))
     
    (doto frame
      (.addWindowListener 
        (proxy [WindowAdapter] [] 
          (windowClosing [e] 
            (System/exit 0))))
      (.setLayout layout)
      (.add label)
      (.setSize 640 480)
      (.setTitle "Hello, World")
      (.setResizable false)
      (.setVisible true))

    実行方法

    C:¥> clj Hello.clj

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  6. Hello, AWT(Jython) World!

    Posted on 11月 25th, 2012 by cx20

    AWT(Jython)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Jython による AWT の使用例となっている。

    ソースコード

    from java.lang import System
    from java.awt import Frame
    from java.awt import Label
    from java.awt import FlowLayout
    from java.awt.event import WindowAdapter
     
    class HelloFrame(Frame):
        def __init__(self):
            self.setTitle( "Hello, World" )
            self.addWindowListener(HelloWindowAdapter())
            self.setSize( 640, 480 )
     
            self.setLayout( FlowLayout(FlowLayout.LEFT) )
     
            label = Label( "Hello, AWT World!" )
            self.add( label )
     
    class HelloWindowAdapter(WindowAdapter):
        def windowClosing(self, event):
            System.exit(0)
     
    if __name__ == '__main__':
        frame = HelloFrame()
        frame.setVisible(True)

    実行方法

    C:¥> jython Hello.py

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  7. Hello, AWT(JRuby) World!

    Posted on 11月 19th, 2012 by cx20

    AWT(JRuby)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は JRuby による AWT の使用例となっている。

    ソースコード

    require "java"
     
    import java.lang.System
    import java.awt.Frame
    import java.awt.Label
    import java.awt.FlowLayout
    import java.awt.event.WindowAdapter
     
    class Hello < Frame
      def initialize(title)
        super(title)
        self.addWindowListener(HelloWindowAdapter.new)
        self.setSize(640, 480)
     
        self.setLayout(FlowLayout.new(FlowLayout::LEFT))
     
        @label = Label.new('Hello, AWT World!')
        self.add(@label)
      end
    end
     
    class HelloWindowAdapter < WindowAdapter
      def windowClosing(e)
        System.exit(0)
      end
    end
     
    @frame = Hello.new('Hello, World')
    @frame.setVisible(true)

    実行方法

    C:¥> jrubyw Hello.rb

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  8. Hello, AWT(Scala) World!

    Posted on 11月 13th, 2012 by cx20

    AWT(Scala)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Scala による AWT の使用例となっている。

    ソースコード

    import java.awt._
    import java.awt.event._
     
    object Hello {
        def main(args: Array[String]) {
            var frame = new HelloFrame( "Hello, World" )
            frame.setVisible(true)
        }
    }
     
    class HelloFrame( title: String ) extends Frame {
        setTitle( title )
        addWindowListener(new HelloWindowAdapter())
        setSize(640, 480)
     
        setLayout(new FlowLayout(FlowLayout.LEFT))
     
        var label = new Label("Hello, AWT World!")
        add(label)
    }
     
    class HelloWindowAdapter extends WindowAdapter {
        override def windowClosing( e: WindowEvent ) {
            System.exit(0)
        }
    }

    コンパイル&実行方法

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

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  9. Hello, AWT(Groovy) World!

    Posted on 11月 7th, 2012 by cx20

    AWT(Groovy)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
    以下は Groovy による AWT の使用例となっている。

    ソースコード

    import java.awt.*
    import java.awt.event.*
     
    class Hello extends Frame {
         static void main(args) {
            def frame = new Hello( "Hello, World" )
            frame.setVisible(true)
        }
     
        Hello( title ) {
            super( title );
            addWindowListener(new HelloWindowAdapter())
            setSize(640, 480)
     
            setLayout(new FlowLayout(FlowLayout.LEFT))
     
            def label = new Label("Hello, AWT World!")
            add(label)
        }
    }
     
    class HelloWindowAdapter extends WindowAdapter {
        void windowClosing(WindowEvent e) {
            System.exit(0)
        }
    }

    実行方法

    C:¥> groovyw Hello.groovy

    実行結果

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

    Posted on 11月 1st, 2012 by cx20

    AWT(Java)

    AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
    J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。

    ソースコード

    import java.awt.*;
    import java.awt.event.*;
     
    public class Hello extends Frame {
        public static void main(String [] args) {
            Hello frame = new Hello( "Hello, World" );
            frame.setVisible(true);
        }
     
        Hello( String title ) {
            super( title );
            addWindowListener(new HelloWindowAdapter());
            setSize(640, 480);
     
            setLayout(new FlowLayout(FlowLayout.LEFT));
     
            Label label = new Label("Hello, AWT World!");
            add(label);
        }
     
    }
     
    class HelloWindowAdapter extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }

    コンパイル&実行方法

    C:¥> javac Hello.java
    C:¥> javaw Hello

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, AWT World!                         |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+