public class Dialog 4 private static JPanel panel
public class Dialog 4 { private static JPanel panel; 例 (staticの場合) public static void main(String[] args) { JFrame frame=new JFrame(); frame. set. Size(200, 300); panel=(JPanel)frame. get. Content. Pane(); JButton b=new JButton("Quit"); b. add. Mouse. Listener(new D 4 Adapter()); panel. add(b, Border. Layout. NORTH); frame. set. Visible(true); } static class D 4 Adapter extends Mouse. Adapter{ public void mouse. Pressed(Mouse. Event arg 0) { int ans=JOption. Pane. show. Confirm. Dialog(panel, "Really? "); if(ans==0) System. exit(1); } } } 11
public class Dialog 5 extends JFrame { private JPanel panel; Dialog 5(){ super("5"); JFrame frame=new JFrame("4"); frame. set. Size(200, 300); panel=(JPanel)frame. get. Content. Pane(); frame. set. Visible(true); } 例 public void run(){ JButton b=new JButton("Quit"); b. add. Mouse. Listener(new D 4 Adapter()); panel. add(b, Border. Layout. NORTH); panel. validate(); } public static void main(String[] args) { new Dialog 5(). run(); } private class D 4 Adapter extends Mouse. Adapter{ public void mouse. Pressed(Mouse. Event arg 0) { int ans=JOption. Pane. show. Confirm. Dialog(panel, "Really? "); if(ans==0) System. exit(1); } } } 12
public class Dialog 6 { private static JPanel panel; public static void main(String[] args) { JFrame frame=new JFrame("6"); frame. set. Size(200, 300); panel=(JPanel)frame. get. Content. Pane(); JButton b=new JButton("Quit"); 例 (クラス拡張) b. add. Mouse. Listener( new Mouse. Adapter(){ public void mouse. Pressed(Mouse. Event e){ int ans=JOption. Pane. show. Confirm. Dialog(panel, "Really? "); if(ans==0) System. exit(1); } class XX extends Mouse. Adapter{ } public void mouse. Pressed(Mouse. Event e){ ); int ans=JOption. Pane. show. Confirm. Dialog(panel, "Really? "); if(ans==0) System. exit(1); panel. add(b, Border. Layout. NORTH); frame. set. Visible(true); } } Mouse. Adapter a=new XX(); } 14
public class Dialog 7 { private static JPanel panel; public static void main(String[] args) { JFrame frame=new JFrame("7"); frame. set. Size(200, 300); panel=(JPanel)frame. get. Content. Pane(); JText. Field t=new JText. Field(20); 例 (IF実装) t. add. Action. Listener( new Action. Listener(){ public void action. Performed(Action. Event e){ String s=((JText. Field)e. get. Source()). get. Text(); int ans=JOption. Pane. show. Confirm. Dialog(panel, s); if(ans==0) System. exit(1); } } class XX implements Action. Listener{ ); public void action. Performed(Action. Event e){ String s=((JText. Field)e. get. Source()). get. Text(); int ans=JOption. Pane. show. Confirm. Dialog(panel, s); if(ans==0) System. exit(1); panel. add(t, Border. Layout. NORTH); frame. set. Visible(true); } } Action. Listener a=new XX(); 15
第 1回から抜粋 ソースコード public class Counter. Label extends JLabel implements Mouse. Listener { private int c=0; public class Listener 1 { public static void main(String[] args){ JFrame jf=new JFrame("Hello"); jf. set. Size(300, 100); JPanel panel=new JPanel(); jf. set. Content. Pane(panel); Counter. Label(){ super(0+""); } public void mouse. Clicked(Mouse. Event arg 0) {} public void mouse. Entered(Mouse. Event arg 0) {} public void mouse. Exited(Mouse. Event arg 0) {} public void mouse. Released(Mouse. Event arg 0) {} JButton button=new JButton("Up"); panel. add(button); Counter. Label counter=new Counter. Label(); panel. add(counter); public void mouse. Pressed(Mouse. Event arg 0) { c++; set. Text(c+""); } button. add. Mouse. Listener(counter); jf. set. Visible(true); } } ボタンbuttonのイベントを ラベルcounterが聞くように指示 } ボタン系のイベントに対応して行う処理を, ラベル(リスナー)内に実装. 18
第 1回から抜粋 ソース (抜粋) public class Listener 2 { public static void main(String[] args){ JFrame jf=new JFrame("Hello"); jf. set. Size(300, 100); JPanel panel=new JPanel(); jf. set. Content. Pane(panel); public class Counter. Label 3 extends JLabel implements Mouse. Listener { private int c=0; private JButton up; private JButton down; Counter. Label 3(int x, JButton up, JButton down){ super(x+""); c=x; this. up=up; this. down=down; } JButton up=new JButton("Up"); JButton down = new JButton("Down"); Counter. Label 3 counter=new Counter. Label 3(0, up, down); public void mouse. Pressed(Mouse. Event arg 0) { JButton b=(JButton)arg 0. get. Source(); if(b==up){ c++; }else if(b==down){ c--; } set. Text(c+""); } up. add. Mouse. Listener(counter); down. add. Mouse. Listener(counter); panel. add(up); panel. add(counter); panel. add(down); jf. set. Visible(true); リスナー } } ポイントはリスナー側で,複数あ るソースの情報を保持している こと. public void mouse. Released(Mouse. Event arg 0) {} public void mouse. Clicked(Mouse. Event arg 0) {} public void mouse. Entered(Mouse. Event arg 0) {} public void mouse. Exited(Mouse. Event arg 0) {} } 22
- Slides: 27