2017-02-25 2 views
-1

나는 눌린 버튼을 보이지 않게 설정하고 나머지는 보이도록 설정하려고합니다. 나는 getComponents() 메서드를 사용하여 세 개의 버튼을 가져 와서 가시성 상태를 변경하지만 뭔가 잘못되었습니다.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()); 
    } 
} 

I 구성 요소의 가시성 상태를 얻을 수 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 개의 단추가 있으며 하나만 보이지 않을 수 있습니다. – Bruno

관련 문제