最後の例は、JDK1.1で新たに導入された、Inner Class を使って、 先のサンプル3を書き換えたものです。これは、なかなか面白いコードだと思います。
== サンプル5 =============================================================== import java.awt.*; import java.awt.event.*; class App { public static void main(String argv[]){ App app = new App(); GUI gui = app.new GUI(); } class GUI extends Frame { Button button ; Checkbox checkbox ; List list ; Choice choice ; Panel panel ; TextField textfield ; GUI(){ button = new Button("ボタン"); checkbox = new Checkbox("チェック"); list = new List(1); list.add("リスト1"); list.add("リスト2"); list.add("リスト3"); choice = new Choice(); choice.add("チョイス1"); choice.add("チョイス2"); choice.add("チョイス3"); panel = new Panel(); panel.add(button); panel.add(checkbox); panel.add(list); panel.add(choice); add(panel,"North"); textfield = new TextField(); add(textfield,"South"); button.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent evt){ textfield.setText("ボタンが押されました。" ); } } ); checkbox.addItemListener( new ItemListener(){ public void itemStateChanged(ItemEvent evt){ if ( checkbox.getState() ){ textfield.setText("チェックされました。" ); } else { textfield.setText("チェックが外されました。" ); } } } ); list.addItemListener( new ItemListener(){ public void itemStateChanged(ItemEvent evt){ textfield.setText(list.getSelectedItem() + "が選ばれました。" ); } } ); choice.addItemListener( new ItemListener(){ public void itemStateChanged(ItemEvent evt){ textfield.setText(choice.getSelectedItem() + "が選ばれました。" ); } } ); textfield.addFocusListener( new FocusListener(){ public void focusLost(FocusEvent evt){ textfield.setText("フォーカスが無くなりました。"); } public void focusGained(FocusEvent evt){ textfield.setText("フォーカスがあります。"); } } ); addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent evt){ System.exit(0); } } ); pack(); setVisible(true); } } } =============================================================================