Javaプログラミング/Javaプログラミング関連情報

スクリプトでJavaを使おう!(4ページ目)

「BeanShell」というスクリプトとしてJavaコードを実行できるシェルで遊んでみましょう。

執筆者:掌田 津耶乃

GUIを操作してみる!


では、どんどん試していきましょう。今度は、GUIをインタラクティブに操作してみましょう。SwingのJFrameを作り、表示させてみることにしましょう。

bsh % f1 = new JFrame("This is Frame 1");
bsh % f1.setSize(300,300);
bsh % f1.setVisible(true);


<New Bsh Workspace>JFrameインスタンスを作成して表示してみる。ちゃんとSwingも動く。


順番に3つのコードを実行するわけです。これで、画面にポンッ!とウインドウが現れます。なんだか冗談のように簡単ですね。これで、f1という名前のJFrameインスタンスができました。もちろん、f1をそのまま操作することもできますし、更にオブジェクトを作ってf1に組み込んだりすることもできます。

コードを見て気がつくのは、「import文がない」ということでしょう。本来なら、import文がなければJFrameは「javax.swing.JFrame」と記述しないといけないはずですが、そこはスクリプト言語。ただ「JFrame」だけでちゃんと理解してしまいます。ある意味、Javaよりもはるかに簡単ですね。

こうして作成したf1インスタンスは、もちろんシェルのウインドウを閉じるまでずっと保持され続けます。ですから、これに更にコンポーネント類を追加していくことだって可能です。

bsh % f1.setLayout(null);
bsh % l1 = new JLabel("Hello");
bsh % l1.setFont(new Font("Serif",Font.BOLD,24));
bsh % l1.setBounds(25,25,200,25);
bsh % f1.add(l1);
bsh % f1.repaint();


<New Bsh Workspace>JLabelを組み込んでみた。repaintしないとうまく表示されないことがあるので注意。


今度は、JLabelを作ってJFrameに組み込んでみましょう。これもnew JLabelでインスタンスを作成し、それを設定してaddすればおしまいです。最後にrepaintをしていますが、これをしないとaddしたコンポーネントがすぐに表示されない場合があるようです(もっとも、環境やバージョンによるかも知れませんが)。もちろん、repaintしなくとも、一度ウインドウをリサイズするなどして表示が更新されれば正常に表示されるようになります。

コンポーネントに限らず、Fontインスタンスなどもそのまま作成でき、きちんと表示に反映されていますね。Colorなどももちろんちゃんと動きます。――また、コードを見て気づいた人もいるでしょうが、ここではJFrameのgetContentPane().addしているわけではなく、そのままf1.addしていますね。Swingなのに、ContentPaneでなくJFrameに直接addして表示されるというのは? そう、Java 5に対応しているということですね(Java 5からは、SwingでもそのままJFrameにaddするだけで自動的にContentPaneにaddされるようになっています)。現在、もっとも広く使われているJava 5に既に対応しているというのは非常に強力です。


  • 前のページへ
  • 1
  • 3
  • 4
  • 5
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます