ButtonControl.java



import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/** 表示のコントロールを受ける ShowControled クラス */

class ShowControled extends Button implements ItemListener {

   /** コンストラクタ */

      ShowControled( String label ) {
           super(label);
      }

   /** 独自のアクションの処理 */

      public void itemStateChanged( ItemEvent evt ) {

            show( evt.getStateChange() == ItemEvent.DESELECTED );
      }
}

/** 状態のコントロールを受ける EnableControled クラス */

class EnableControled extends Checkbox  implements ItemListener {

   /** コンストラクタ */

      EnableControled( String label ) {
           super(label);
      }

   /** 独自のアクション処理 */

      public void itemStateChanged( ItemEvent evt ) {

            enable( evt.getStateChange() == ItemEvent.DESELECTED );
      }
}

/** アクションの処理をテストするアプレット ButtonControl クラス */

public class ButtonControl extends Applet {


   /** インターフェイスの部品の宣言 */ 
      public Checkbox check;
      public ShowControled showControled;
      public EnableControled enableControled;

   /** 初期設定のメソッド */

      public void init() {

           showControled
            = new ShowControled( "I am Controled by Anyone." );
           enableControled = new EnableControled( "Show/Hide" );
           check = new Checkbox( "Enable/Disable" );
           add( check );
           add( enableControled );
           add( showControled );

           check.addItemListener( enableControled );
           enableControled.addItemListener( showControled );
      }
}