2017-02-25 3 views
-1

私は、押されたボタンを非表示に設定し、残りを表示するように設定しようとしています。私はgetComponents()メソッドを使用して3つのボタンを取得し、その可視状態を変更しましたが、何かがうまくいかない。getComponents()メソッドから返されたコンポーネント配列を変更することができます

@Override 
public void actionPerformed(ActionEvent e) { 
    Component button = ((Component) e.getSource()); 

    for (Component component : view.getComponents()) { 
     if (component instanceof JButton) { 
      if (component.getName().equals(button.getName())) { 
       System.out.format("Pressed button: %s%n", button.getName()); 
       component.setVisible(false); 
      } else { 
       component.setVisible(true); 
      } 
     } 
    } 

    java.awt.Toolkit.getDefaultToolkit().beep(); 

    view.revalidate(); 

    for (Component component : view.getComponents()) { 
     System.out.format("%s is visible: %s%n", component.getName(), component.isVisible()); 
    } 
} 

私はformat()メソッドを使用してコンポーネントの可視性状態を取得しました。起動後、プログラムボタンは消えませんが、状態は正しいです。

button変数を使用して可視状態を設定すると、正常に実行されますが、残りのボタンの表示状態は変更できません。

答えて

1

私はあなたがそうちょうどそれを不可視にクリックされたボタンを持つ

見えない押されたボタンを設定するtriyingです。

@Override 
public void actionPerformed(ActionEvent e) { 
    Component button = ((Component) e.getSource()); 
    button.setVisible(false); 
    java.awt.Toolkit.getDefaultToolkit().beep(); 
} 

パネルのすべてのボタンを反復する必要はありません。

+0

申し訳ありません。私はそれを意味しませんでした。 3つのボタンがあり、1つしか表示されない場合があります。 – Bruno

関連する問題