2017-02-25 2 views
-1

Ich versuche, eine gedrückte Schaltfläche unsichtbar zu setzen und den Rest sichtbar zu setzen. Ich habe getComponents() Methode verwendet, um die drei Schaltflächen zu erhalten und ändern Sie ihren Sichtbarkeitszustand, aber etwas schief geht.Component Array zurückgegeben von getComponents() -Methode kann geändert werden

@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()); 
    } 
} 

habe ich format() Methoden verwendeten Komponenten Sichtbarkeitsstatus zu erhalten. Nach dem Start verschwinden die Programmschaltflächen nicht, aber die Zustände sind korrekt.

Wenn ich button Variable verwenden, um seinen Sichtbarkeitsstatus zu setzen, wird es erfolgreich ausgeführt, aber ich kann den Rest des Sichtbarkeitsstatus der Schaltflächen nicht ändern.

Antwort

1

Ich triying eine gedrückte Taste unsichtbar

Sie setzen müssen, die Schaltfläche, die so gerade geklickt wurde unsichtbar machen.

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

Es ist nicht erforderlich, alle Schaltflächen auf dem Bedienfeld zu durchlaufen.

+0

Entschuldigung. Das meinte ich nicht. Es gibt drei Tasten und nur eine kann unsichtbar sein. – Bruno

Verwandte Themen