Hello, Swing(Jasmin) World!

Posted on 1月 1st, 2013 by cx20

Swing(Java)

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

ソースコード

; 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:16:09 JST 2012
 
.bytecode 51.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 7
       0: new Hello
       3: dup
       4: ldc "Hello, World"
       6: invokespecial Hello/<init>(Ljava/lang/String;)V
       9: astore_1
 
    .line 8
      10: aload_1
      11: iconst_1
      12: invokevirtual Hello/setVisible(Z)V
 
    Label1:
.line 9
      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 12
       0: aload_0
       1: aload_1
       2: invokespecial javax/swing/JFrame/<init>(Ljava/lang/String;)V
 
    .line 13
       5: aload_0
       6: iconst_3
       7: invokevirtual Hello/setDefaultCloseOperation(I)V
 
    .line 14
      10: aload_0
      11: aconst_null
      12: invokevirtual Hello/setLocationRelativeTo(Ljava/awt/Component;)V
 
    .line 15
      15: aload_0
      16: sipush 640
      19: sipush 480
      22: invokevirtual Hello/setSize(II)V
 
    .line 17
      25: new javax/swing/JLabel
      28: dup
      29: ldc "Hello, Swing World!"
      31: invokespecial javax/swing/JLabel/<init>(Ljava/lang/String;)V
      34: astore_2
 
    .line 18
      35: aload_2
      36: iconst_1
      37: invokevirtual javax/swing/JLabel/setVerticalAlignment(I)V
 
    .line 19
      40: aload_0
      41: aload_2
      42: invokevirtual Hello/add(Ljava/awt/Component;)Ljava/awt/Component;
      45: pop
 
    Label1:
.line 20
      46: return
 
.end method

コンパイル&実行方法

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

実行結果

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

Tags:

Categories: Jasmin, Java, Swing

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing