Javaレクチャー ーSwing入門ー
Swingとは ウィンドウをもつプログラムに必要な機能をまとめたもの ボタンやアイコン、メニューなどを取り入れたGUIプログラムを作成することが出来る
SwingとAWTの違い 1.AWTはシステムに依存しているが、Swingは依存していない 2.どのシステム上でも同じ外観を使用できる 3.ルックアンドフィールを切り替えられる ―ルックアンドフィール:GUI部品の見栄え、見た目の振舞いの事―
Swingの構造 Swing コンポーネントは、コンポーネント、中間コンポーネント、トップレベルコンポーネントの三つに階層化されている
それぞれの部品 トップレベルコンテナ 中間コンテナ コンポーネント それぞれの部品のこと。ボタンとか トップレベルコンテナ 他のSwingコンポーネントを描画するためのコンテナ 中間コンテナ 他のSwingコンポーネントを配置する為などに用いる コンポーネント それぞれの部品のこと。ボタンとか
HOW TO USE コンポーネントをコンテナに取り付ける 各種コンポーネントを作成 ⇒メソッドgetContentPane();でコンテンツペインというコンテナを作る 各種コンポーネントを作成 コンテナのadd()メソッドを使ってコンテナにコンポーネントを乗っける
JFrame作成 JFrameはウィンドウを作るコンポーネント コンテナを載せる場所な訳だから、これが無いと始まらない JFrame frame = new JFrame(); //ウィンドウ作成 frame.setDefaultCloseOperation(jf.EXIT_ON_CLOSE); //クローズボタンで終了 frame.setVisible(true); //ウィンドウの表示
JFrameその他 setResizable(boolean resizable) ; ウィンドウサイズ変更不可メソッド setSize(int width, int height) ; ウィンドウサイズをセットするメソッド pack() ; 配置するコンポーネントの大きさにウィンドウサイズを合わせるメソッド
レイアウトしてみる レイアウトマネージャ ⇒部品の配置方法、大きさなどを管理する FlowLayout BorderLayout
FlowLayout 段落内のテキスト行と同じように一方向にコンポーネントを配置する。 同じ行に配置できなくなるまでコンポーネントを配置する。 setLayout(new FlowLayout(FlowLayout.LEFT)); LEFT:左揃え RIGHT:右揃え CENTER:中央揃え
BorderLayout 上下右左、および中央の五つの領域に収まるようにコンポーネントを整列&サイズ変更する それぞれに対応するNORTH(上端)、SOUTH(下端)、EAST(右端)、WEST(左端)、CENTER(中央)という定数が用意されている JFrameのデフォルトレイアウトがこれ
ボーダーレイアウト例 con.setLayout(new BorderLayout()); con.add(new JButton("NORTH"), "North"); con.add(new JButton("CENTER"), "Center"); con.add(new JButton("SOUTH"), "South"); con.add(new JButton("EAST"), "East"); con.add(new JButton("WEST"), "West");
ボタン ボタンとはユーザがマウスでクリックすることにより、何かアクションを起こすために使用するコンポーネント JButton bt = new JButton(“ボタン”);
テキストフィールド テキストフィールドはユーザが1行テキストを入力できるコンポーネント JTextField jt = new JTextField();
その他コンポーネント などなど・・ テキストエリア //メモ帳 ラジオボタン //ラジオボタン テキストエリア //メモ帳 ラジオボタン //ラジオボタン コンボボックス //ファイルメニューみたいなの パネル // 他のコンポーネントを乗っける事ができる板 などなど・・
今回の課題 サンプルプログラムを動かしてみて理解しよう チャットツールもどきを作成してみよう (ボーナス課題)アプレットで信号機を作ろう
チャットツールもどき こんな感じでテキストフィールドに入力した文字がボタンイベントによってテキストエリアにコピーされるプログラム。
アプレットで信号機 ボタンで青→黄→赤(矢印有り)→黄→赤→・・・ ウィンドウサイズに合わせるように 出来なくてもいいです
ヒント 山村先輩のページを見てみると良いよ。