120 likes | 201 Views
第15回独習Javaゼミ. セクション14~15 発表者 直江宗紀. 15.14 パネル. Panel(パネル) Container を拡張したクラス 他のコンポーネントを配置するためのベース ( 下地 ) レイアウトマネージャに関連付けされている パネルの入れ子 ( パネルの中にパネル ) が可能. コンポーネント類. パネル. ウィンドウ・フレーム. プログラム例(1). import java.applet.*; import java.awt.*; public class test1 extends Applet{
E N D
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀
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つ使用 • それぞれ、上から順に配置 • チェックボックス、ボタン、ラベルのベースにPanelクラスが配置 • アプレット自身もパネルを持つためプログラム中のadd()メソッドなどがある。
15.15 ウィンドウとフレーム • Window(ウィンドウ) • Containerを拡張したクラス • タイトル、メニューバーの無い別のウィンドウを提供 • サブクラスにFrame,Dialogを持つ • コンストラクタ • Window(Frame parent) • parent:ウィンドウの所有者
Windowクラスの主なメソッド • Windowクラスの主なメソッドについて
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() • 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種を上手く配置できるようにレイアウトマネージャーを使って表示せよ。この時、チョイスを選んだ物をタイトルバーに表示するようにし、チェックボックスにより、ラベルが変化、さらにボタンによりウィンドウが終了するような動きもつけるプログラムにすること。