ButtonControl11.java
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
/** コンポーネントの表示をコントロールする ShowAdapter クラス */
class ShowAdapter implements ItemListener {
/** コントロールを受けるコンポーネント */
Component sheep;
/** コンストラクタ */
ShowAdapter( Component sheep ) {
this.sheep = sheep;
}
/** 独自のアクション処理 */
public void itemStateChanged( ItemEvent evt ) {
if( ( (Checkbox)evt.getSource() ).getState() )
sheep.setVisible( false );
else
sheep.setVisible( true );
}
}
/** コンポーネントの状態をコントロールする EnableAdapter クラス */
class EnableAdapter implements ItemListener {
/** コントロールを受けるコンポーネント */
Component sheep;
/** コンストラクタ */
EnableAdapter( Component sheep ) {
this.sheep = sheep;
}
/** 独自のアクション処理 */
public void itemStateChanged( ItemEvent evt ) {
if( ( (Checkbox)evt.getSource() ).getState() )
sheep.setEnabled( false );
else
sheep.setEnabled( true );
}
}
/** アクションの処理をテストするアプレット ButtonControl11 クラス */
public class ButtonControl11 extends Applet implements ActionListener{
/** インターフェイスの部品の宣言 */
public Button button;
public Checkbox showControl;
public Checkbox enableControl;
/** 初期設定のメソッド */
public void init() {
button = new Button( "Change Applet Color" );
showControl = new Checkbox( "Show/Hide" );
enableControl = new Checkbox( "Enable/Disable" );
add( enableControl );
add( showControl );
add( button );
EnableAdapter enableAdapter = new EnableAdapter( showControl );
ShowAdapter showAdapter = new ShowAdapter( button );
enableControl.addItemListener( enableAdapter );
showControl.addItemListener( showAdapter );
button.addActionListener( this );
}
/** 色の状態を記憶するフラグ */
public boolean flag = true;
/** アプレットのアクション処理のメソッド */
public void actionPerformed( ActionEvent evt ) {
if( flag ) {
setBackground( Color.red );
flag = false;
}
else {
setBackground( Color.white );
flag = true;
}
}
}