- まずはDownloadPageでjavarebel-1.0.zipをDownloadする。
- EclipseでProjectを一つ作成し、そのフォルダにdownloadしたzip内の「javarebel.jar」を配置する。
- 次のようなClassを作成する。ボタンとラベルを配置したFrameを作成し、ボタンをClickすると「Hello.」と表示するだけの簡単なプログラム。
package shin1o; @SuppressWarnings("serial") public class MyFrame extends javax.swing.JFrame { javax.swing.JLabel label; @SuppressWarnings("serial") public MyFrame() { label = new javax.swing.JLabel("messages."); javax.swing.JButton button = new javax.swing.JButton( new javax.swing.AbstractAction() { public void actionPerformed(java.awt.event.ActionEvent e) { label.setText("Hello."); } }); button.setText("click me."); setDefaultCloseOperation(DISPOSE_ON_CLOSE); getContentPane().setLayout(new java.awt.FlowLayout()); setTitle("MyFrame"); add(label); add(button); setSize(300, 75); } public static void main(String[] args) { new MyFrame().setVisible(true); } }
- Eclipseの「Run」「Open Run Dialog」で実行の構成を作成し、「Arguments」タブの「VM arguments」に
-javaagent:javarebel.jar
を設定し、「Run」で実行する。Debugではなくて実行。 - 上記の説明に書いたようなSimpleなFrameが表示されるはず。
- ButtonをClickすると、Labelのメッセージが「messages」から「Hello.」に変わる。
- この状態で、Eclipse上のソースを修正する。例えば、Helloの文字を別のモノに変えて、保存する。
- そして、実行画面でもう一度ButtonをClickすると修正後の動作になる。ClassがDynamicLoadされたのがわかる。
- さらに、例えば「Messages」等の新たなClassを作成し、そこへ新たに追加したstaticメソッド「getMessage()」等からメッセージを取得するように修正する。
- これもDynamicLoadの効果で動作中のプログラムに反映される。
- static でfinalなフィールドを用意し、それをメッセージとして使用してももちろん大丈夫!
- ただし、ResourceBundle#getBundle()で取得しているようなリソースはダメ。
Blogged with Flock
0 件のコメント:
コメントを投稿