2017-02-25 12 views
-1

我试图设置一个按下的按钮不可见,并设置其余可见。我用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

对不起。我不是那个意思。有三个按钮,只有一个可能不可见。 – Bruno