Posts Tagged ‘SWT’

  1. Hello, SWT(Jasmin) World!

    Posted on 1月 2nd, 2013 by cx20

    SWT(Java)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Jasmin による SWT の使用例となっている。

    ソースコード

    ; 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:23:19 JST 2012
     
    .bytecode 50.0
    .source Hello.java
    .class public Hello
    .super java/lang/Object
     
    .method public <init>()V
        .limit stack 1
        .limit locals 1
        .var 0 is this LHello; from Label0 to Label1
     
        Label0:
    .line 5
           0: aload_0
           1: invokespecial java/lang/Object/<init>()V
     
        Label1:
           4: return
     
    .end method
     
    .method public static main([Ljava/lang/String;)V
        .limit stack 4
        .limit locals 5
        .var 0 is arg0 [Ljava/lang/String; from Label3 to Label4
     
        Label3:
    .line 7
           0: new org/eclipse/swt/widgets/Display
           3: dup
           4: invokespecial org/eclipse/swt/widgets/Display/<init>()V
           7: astore_1
     
        .line 8
           8: new org/eclipse/swt/widgets/Shell
          11: dup
          12: aload_1
          13: invokespecial org/eclipse/swt/widgets/Shell/<init>(Lorg/eclipse/swt/widgets/Display;)V
          16: astore_2
     
        .line 9
          17: aload_2
          18: ldc "Hello, World"
          20: invokevirtual org/eclipse/swt/widgets/Shell/setText(Ljava/lang/String;)V
     
        .line 12
          23: new org/eclipse/swt/layout/FillLayout
          26: dup
          27: sipush 512
          30: invokespecial org/eclipse/swt/layout/FillLayout/<init>(I)V
          33: astore_3
     
        .line 13
          34: aload_2
          35: aload_3
          36: invokevirtual org/eclipse/swt/widgets/Shell/setLayout(Lorg/eclipse/swt/widgets/Layout;)V
     
        .line 15
          39: new org/eclipse/swt/widgets/Label
          42: dup
          43: aload_2
          44: sipush 2048
          47: invokespecial org/eclipse/swt/widgets/Label/<init>(Lorg/eclipse/swt/widgets/Composite;I)V
          50: astore 4
     
        .line 16
          52: aload 4
          54: ldc "Hello, SWT World!"
          56: invokevirtual org/eclipse/swt/widgets/Label/setText(Ljava/lang/String;)V
     
        .line 18
          59: aload_2
          60: sipush 640
          63: sipush 480
          66: invokevirtual org/eclipse/swt/widgets/Shell/setSize(II)V
     
        .line 19
          69: aload_2
          70: invokevirtual org/eclipse/swt/widgets/Shell/open()V
     
        Label1:
    .line 21
          73: aload_2
          74: invokevirtual org/eclipse/swt/widgets/Shell/isDisposed()Z
          77: ifne Label0
     
        .line 22
          80: aload_1
          81: invokevirtual org/eclipse/swt/widgets/Display/readAndDispatch()Z
          84: ifne Label1
     
        .line 23
          87: aload_1
          88: invokevirtual org/eclipse/swt/widgets/Display/sleep()Z
          91: pop
          92: goto Label1
     
        Label0:
    .line 27
          95: aload_1
          96: invokevirtual org/eclipse/swt/widgets/Display/dispose()V
     
        Label4:
    .line 28
          99: return
     
    .end method

    コンパイル&実行方法

    C:¥> java -jar jasmin.jar Hello.j
    C:¥> javaw -cp org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;. Hello

    実行結果

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

    Posted on 12月 27th, 2012 by cx20

    SWT(Fantom)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Fantom による SWT の使用例となっている。

    ソースコード

    using [java] org.eclipse.swt
    using [java] org.eclipse.swt.widgets::Display
    using [java] org.eclipse.swt.widgets::Shell
    using [java] org.eclipse.swt.widgets::Label
    using [java] org.eclipse.swt.layout::FillLayout
    using concurrent
     
    class Hello
    {
        Void main()
        {
            display := Display()
            shell := Shell(display)
            shell.setText("Hello, World")
     
            layout := FillLayout(SWT.VERTICAL)
            shell.setLayout(layout)
     
            label := Label(shell,SWT.BORDER)
            label.setText("Hello, SWT World!")
     
            shell.setSize( 640, 480 )
            shell.open()
     
            while (!shell.isDisposed())
            {
                if (!display.readAndDispatch())
                {
                    display.sleep()
                }
            }
     
            display.dispose()
        }
    }

    実行方法

    C:¥> fan hello.fan

    実行結果

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

    Posted on 12月 21st, 2012 by cx20

    SWT(Rhino)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Rhino による SWT の使用例となっている。

    ソースコード

    importPackage(org.eclipse.swt);
    importPackage(org.eclipse.swt.widgets);
    importPackage(org.eclipse.swt.layout);
     
    var display = new Display();
    var shell = new Shell(display);
    shell.setText("Hello, World");
     
    var layout = new FillLayout(SWT.VERTICAL);
    shell.setLayout(layout);
     
    var label = new Label(shell,SWT.BORDER);
    label.setText("Hello, SWT World!");
     
    shell.setSize( 640, 480 );
    shell.open();
     
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
     
    display.dispose();

    実行方法

    C:¥> jrunscript -cp org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;. hello.js

    実行結果

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

    Posted on 12月 15th, 2012 by cx20

    SWT(Tcl/Java)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Tcl/Java による SWT の使用例となっている。

    ソースコード

    package require java
     
    java::import org.eclipse.swt.SWT
    java::import org.eclipse.swt.widgets.Display
    java::import org.eclipse.swt.widgets.Shell
    java::import org.eclipse.swt.widgets.Label
    java::import org.eclipse.swt.layout.FillLayout
     
    set display [java::new Display]
    set shell [java::new Shell $display]
    $shell setText "Hello, World"
     
    set layout [java::new FillLayout [java::field SWT VERTICAL]]
    $shell setLayout $layout
     
    set label [java::new Label $shell [java::field SWT BORDER]]
    $label setText "Hello, SWT World!"
     
    $shell setSize 640 480
    $shell open
     
    while { ![$shell isDisposed] } {
        if { ![$display readAndDispatch] } {
            $display sleep
        }
    }
     
    $display dispose

    実行方法

    C:¥> SET CLASSPATH=bsh-2.0b4.jar;org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;%CLASSPATH%
    C:¥> jaclsh hello.bsh

    実行結果

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

    Posted on 12月 9th, 2012 by cx20

    SWT(BeanShell)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は BeanShell による SWT の使用例となっている。

    ソースコード

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.*;
    import org.eclipse.swt.layout.*;
     
    display = new Display();
    shell = new Shell(display);
    shell.setText("Hello, World");
     
    layout = new FillLayout(SWT.VERTICAL);
    shell.setLayout(layout);
     
    label = new Label(shell,SWT.BORDER);
    label.setText("Hello, SWT World!");
     
    shell.setSize( 640, 480 );
    shell.open();
     
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
     
    display.dispose();

    実行方法

    C:¥> SET CLASSPATH=bsh-2.0b4.jar;org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;%CLASSPATH%
    C:¥> java bsh.Interpreter hello.bsh

    実行結果

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

    Posted on 12月 3rd, 2012 by cx20

    SWT(Clojure)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Clojure による SWT の使用例となっている。

    ソースコード

    (import 
      (org.eclipse.swt SWT)
      (org.eclipse.swt.widgets Display)
      (org.eclipse.swt.widgets Shell)
      (org.eclipse.swt.widgets Label)
      (org.eclipse.swt.layout FillLayout)
      (org.eclipse.swt.events ShellAdapter))
     
    (def display
      (Display.))
     
    (def shell
      (Shell. display))
     
    (def layout
      (FillLayout. SWT/VERTICAL))
     
    (def label
      (Label. shell SWT/BORDER))
     
    (doto label
      (.setText "Hello, SWT World!"))
     
    (doto shell
      (.setText "Hello, World")
      (.setLayout layout)
      (.setSize 640 480)
      (.addShellListener
        (proxy [ShellAdapter] []
          (shellClosed [evt]
            (System/exit 0))))
      (.open))
     
    (defn while-loop [display shell]
      (loop []
        (if (.isDisposed shell)
          (.dispose display)
          (do
            (if (not (.readAndDispatch display))
              (.sleep display))
            (recur)))))
     
    (while-loop display shell))

    実行方法

    C:¥> SET CLASSPATH=org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;%CLASSPATH%
    C:¥> clj Hello.clj

    実行結果

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

    Posted on 11月 27th, 2012 by cx20

    SWT(Jython)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Jython による SWT の使用例となっている。

    ソースコード

    from java.lang import System
    from org.eclipse.swt import SWT
    from org.eclipse.swt.widgets import Display
    from org.eclipse.swt.widgets import Shell
    from org.eclipse.swt.widgets import Label
    from org.eclipse.swt.layout import FillLayout
     
    display = Display()
    shell = Shell(display)
    shell.setText("Hello, World")
     
    layout = FillLayout(SWT.VERTICAL)
    shell.setLayout(layout)
     
    label = Label(shell,SWT.BORDER)
    label.setText("Hello, SWT World!")
     
    shell.setSize( 640, 480 )
    shell.open()
     
    while not shell.isDisposed():
        if not display.readAndDispatch():
            display.sleep()
     
    display.dispose()

    実行方法

    C:¥> SET CLASSPATH=org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;%CLASSPATH%
    C:¥> jython Hello.py

    実行結果

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

    Posted on 11月 21st, 2012 by cx20

    SWT(JRuby)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は JRuby による SWT の使用例となっている。

    ソースコード

    require 'java'
    require 'org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar'
     
    import 'org.eclipse.swt.SWT'
    import 'org.eclipse.swt.widgets.Display'
    import 'org.eclipse.swt.widgets.Shell'
    import 'org.eclipse.swt.widgets.Label'
    import 'org.eclipse.swt.layout.FillLayout'
     
    @display = Display.new
    @shell = Shell.new(display)
    @shell.setText("Hello, World")
     
    @layout = FillLayout.new(SWT::VERTICAL)
    @shell.setLayout(@layout)
     
    @label = Label.new(@shell,SWT::BORDER)
    @label.setText("Hello, SWT World!")
     
    @shell.setSize( 640, 480 )
    @shell.open
     
    while (!@shell.isDisposed) do
      if (!@display.readAndDispatch) then
        @display.sleep
      end
    end
     
    @display.dispose

    実行方法

    C:¥> jrubyw Hello.rb

    実行結果

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

    Posted on 11月 15th, 2012 by cx20

    SWT(Scala)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Scala による SWT の使用例となっている。

    ソースコード

    import org.eclipse.swt.SWT
    import org.eclipse.swt.widgets._
    import org.eclipse.swt.layout._
     
    object Hello {
        def main (args: Array[String]) {
            var display = new Display()
            var shell = new Shell(display)
            shell.setText("Hello, World")
     
            var layout = new FillLayout(SWT.VERTICAL)
            shell.setLayout(layout)
     
            var label = new Label(shell,SWT.BORDER)
            label.setText("Hello, SWT World!")
     
            shell.setSize( 640, 480 )
            shell.open()
     
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep()
                }
            }
     
            display.dispose()
        }
    }

    コンパイル&実行方法

    C:¥> scalac -cp org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;. Hello.scala
    C:¥> scala -cp org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar;. Hello

    実行結果

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

    Posted on 11月 9th, 2012 by cx20

    SWT(Groovy)

    SWT(Standard Widget Toolkit) は Java で GUI を扱うためのライブラリである。
    IBM により AWT や Swing を置き換える目的で作成された。
    以下は Groovy による SWT の使用例となっている。

    ソースコード

    import org.eclipse.swt.SWT
    import org.eclipse.swt.widgets.*
    import org.eclipse.swt.layout.*
     
    class Hello {
        static void main (args) {
            def display = new Display()
            def shell = new Shell(display)
            shell.setText("Hello, World")
     
            def layout = new FillLayout(SWT.VERTICAL)
            shell.setLayout(layout)
     
            def label = new Label(shell,SWT.BORDER)
            label.setText("Hello, SWT World!")
     
            shell.setSize( 640, 480 )
            shell.open();
     
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep()
                }
            }
     
            display.dispose()
        }
    }

    実行方法

    C:¥> groovyw -cp org.eclipse.swt.win32.win32.x86_3.6.1.v3655c.jar Hello.groovy

    実行結果

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