2012-09-30 3 views
2

이 버튼을 한 번만 누르도록 제한 할 수있는 방법이 있습니까? 내가 묻는 이유는 버튼을 누를 때마다 몇 가지 이유 때문에 나머지 코드가 중단되기 때문입니다. 그래서 많은 양의 디버깅 시간을 절약하기 위해, 얼마나 많은 시간을 누르는 지 제한하는 것이 훨씬 쉬울 것입니다. 미리 감사드립니다.Java ActionListener buttonPress() 제한

ActionListener pushButton = new buttonPress(); 
start.addActionListener(pushButton); 
+1

디버깅하는 것이 좋습니다. 나중에 a_s에서 당신을 물 수 있습니다. –

+0

actionPerformed의 버튼을 비활성화합니다. – MadProgrammer

+0

숙제이므로 예상 한대로 수행하는 것이 좋습니다. 유지 보수 가능한 코드를 작성하는 방법이 아니라는 사실을 알고 있습니다. @MadProgrammer 어떻게 actionPerformed에 버튼을 비활성화합니까? – Extinct23

답변

1

버튼을 누르지 않으려면 JButton.setEnabled(false)을 사용할 수 있습니다. 따라서 귀하는 ActionListener의 첫 번째 진술로 이것을 할 수 있습니다.

대안은 다음처럼 ActionListener에 플래그를 설정하는 것입니다 : 당신이 당신의 이벤트 처리기에서 장기 실행 작업을 실행하지 않아야

final ActionListener pushButton = new ActionListener() 
{ 
    private boolean clicked; 
    public void actionPerformed(final ActionEvent e) 
    { 
     if(clicked) 
     { 
      JOptionPane.showMessageDialog(null, "Action already started"); 
      return; 
     } 
     clicked = true; 
     // ... rest of the action to do ... 
    } 
} 

참고, design considerations to keep in mind when implementing event handlers in The Java Tutorials를 참조하십시오.

+0

고마워요. . 정확히 내가 필요로했던 것 – Extinct23