第35夜 Java SEのあたりをつける GUI編

JavaGUIといったらSwing。Swingの使い方を軽く。

利用するパッケージはjavax.swingパッケージ。さらにサブパッケージもある。
サンプルはクリックするたびにカウンタが増えるアプリ。

今回の登場人物

  • javax.swing.JFrame ウインドウ部分
  • javax.swing.JPanel パネル。上にコンポーネントを乗せることが可能
  • javax.swing.JLabel ラベルコンポーネント。文字やアイコンを表示する
  • javax.swing.JButton ボタン。クリックイベントで処理が可能。アイコンも表示可能
  • javax.swing.SwingUtilities Swingで便利なユーティリティを提供する
  • java.awt.FlowLayout 横方向に並べる
  • java.awt.event.ActionListener クリック時のイベント

サンプルコード

public static void main(String[] args) {
    //おまじない。
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            //ウインドウの生成
            JFrame frame = new JFrame("ウインドウタイトル");
            //閉じるボタンクリックしたときの動作
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            
            //ラベルの生成
            final JLabel label = new JLabel("クリックした回数表示するよ!");
            
            //ボタンの生成
            JButton button = new JButton("ボタン");
            button.addActionListener(new ActionListener() {
                int count=0;
                @Override
                public void actionPerformed(ActionEvent e) {
                    count++;
                    label.setText(count+"回 クリックしました");
                    
                }
            });
            
            //パネルの生成
            JPanel panel = new JPanel();
            //レイアウト 横方向にならべる
            panel.setLayout(new FlowLayout()) ;
            
            //パネルにコンポーネントを追加
            panel.add(label);
            panel.add(button);
            //パネルのサイズ設定
            panel.setPreferredSize(new Dimension(320, 200));
            
            
            frame.add(panel);//ウインドウにパネルを追加
            
            frame.pack();//ウインドウサイズの自動調整
            frame.setVisible(true);//ウインドウを表示
        }
    });
}

実行結果

http://shin.cside.com/diary/2011/0624-01.png
初期表示。


http://shin.cside.com/diary/2011/0624-02.png
ボタンをクリックするたびに数値が増えていく。


これでGUIアプリ作れるね!