第15回独習Javaゼミ セクション14~15 発表者 直江宗紀
15.14 パネル Panel(パネル) Containerを拡張したクラス 他のコンポーネントを配置するためのベース(下地) 15.14 パネル Panel(パネル) Containerを拡張したクラス 他のコンポーネントを配置するためのベース(下地) レイアウトマネージャに関連付けされている パネルの入れ子(パネルの中にパネル)が可能 コンポーネント類 パネル ウィンドウ・フレーム
プログラム例(1) import java.applet.*; import java.awt.*; public class test1 extends Applet{ public void init(){ setLayout(new BorderLayout()) ; Panel pn=new Panel() ; Checkbox cb1=new Checkbox("Red",true) ; pn.add(cb1) ; Checkbox cb2=new Checkbox("Green",true) ; pn.add(cb2) ; Checkbox cb3=new Checkbox("Blue",true) ; pn.add(cb3) ; add(pn,BorderLayout.NORTH) ; Panel pc=new Panel() ; pc.setLayout(new GridLayout(3,2)) ; for(int i=0;i<6;i++) pc.add(new Button("Button"+i)) ; add(pc,BorderLayout.CENTER) ; Panel ps=new Panel() ; Label label=new Label("This is the South Panel") ; ps.add(label) ; add(ps,BorderLayout.SOUTH) ; }
プログラム例(1)について プログラム中のポイント Panelクラス3つ使用 それぞれ、上から順に配置 アプレット自身もパネルを持つためプログラム中のadd()メソッドなどがある。
15.15 ウィンドウとフレーム Window(ウィンドウ) Containerを拡張したクラス 15.15 ウィンドウとフレーム Window(ウィンドウ) Containerを拡張したクラス タイトル、メニューバーの無い別のウィンドウを提供 サブクラスにFrame,Dialogを持つ コンストラクタ Window(Frame parent) parent:ウィンドウの所有者
Windowクラスの主なメソッド Windowクラスの主なメソッドについて メソッド名 説明 void addWindowListener (WindowListener wl) ウィンドウイベントの受け取り登録 void removeWindowListener (WindowListener wl) ウィンドウイベントの受け取り登録解除 void pack() ウィンドウ内コンポーネントをレイアウト、初期サイズに設定する void setVisible(Boolean b) ウィンドウの表示 void dispose() ウィンドウ使用後のリソース破棄 Window getWindow() ウィンドウの参照
WindowListenerインターフェース インターフェースに定義されたメソッド(7種) void windowActivated(WindowEvent we) void windowClosed(WindowEvent we) void windowDeactivated(WindowEvent we) void windowClosing(WindowEvent we) void windowDeiconified(WindowEvent we) void windowOpened(WindowEvent we) Deactivated,Deiconifiedはウィンドウのアイコン化及びアイコン化解除時のイベント
Frameクラス Frame(フレーム) Windowクラスを拡張したクラス タイトルとメニューバーを提供 コンストラクタ 主なメソッド Frame(String title) title:タイトルパーに表示される文字列 主なメソッド String getTitle() void setTitle()
プログラム例(2)-1- import java.applet.*; import java.awt.*; import java.awt.event.*; class Frame2 extends Frame implements ActionListener{ Frame2(String title){ super(title) ; addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ dispose() ; } }) ; Button b=new Button("New Frame'sButton") ; b.addActionListener(this) ; add(b) ; } public void actionPerformed(ActionEvent ae){ dispose() ;
プログラム例(2)-2- public class test2 extends Applet implements ActionListener{ public void init(){ Button b=new Button("Create Frame") ; b.addActionListener(this) ; add(b) ; } public void actionPerformed(ActionEvent ae){ Frame2 f2=new Frame2("Frame2") ; f2.setSize(200,200) ; f2.setVisible(true) ;
プログラム例(2)について プログラム中のポイント 新しく作られたフレーム(ウィンドウ)の中にもコンポーネントが置けること “CreateFrame”を押すとウィンドウが新しく出来、”NewFrame’sButton”を押すとウィンドウが閉じる 他のコンポーネントと組み合わせると複雑な動作も可能
演習問題 フレームを用いて作られた新しいウィンドウにパネルを利用して、ボタン、ラベル、チェックボックス、チョイスの4種を上手く配置できるようにレイアウトマネージャーを使って表示せよ。この時、チョイスを選んだ物をタイトルバーに表示するようにし、チェックボックスにより、ラベルが変化、さらにボタンによりウィンドウが終了するような動きもつけるプログラムにすること。