Javaレクチャー

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();
その他コンポーネント
 テキストエリア //メモ帳
 ラジオボタン //ラジオボタン
 コンボボックス //ファイルメニューみたいなの
 パネル
// 他のコンポーネントを
乗っける事ができる板
などなど・・
今回の課題
 サンプルプログラムを動かしてみて理解しよ
う
 チャットツールもどきを作成してみよう
 (ボーナス課題)アプレットで信号機を作ろう
チャットツールもどき
こんな感じでテキストフィールドに入力した文字が
ボタンイベントによってテキストエリアにコピーされ
るプログラム。
アプレットで信号機
 ボタンで青→黄→赤(矢印有り)→黄→赤→・・・
 ウィンドウサイズに合わせるように
 出来なくてもいいです
ヒント
山村先輩のページを見てみると良いよ。