2013-12-08 2 views
2

텍스트 상자와 버튼이있는 응용 프로그램이 있습니다. 텍스트 상자에 focusListener (잘못된 값)가 있고 버튼에 actionListener (파일에 값 저장 용)가 있습니다. 포커스가 사라지 자마자 텍스트 필드에 잘못된 값을 입력하면 오류 메시지 창이 팝업됩니다. 이제 2 가지 시나리오가 있습니다.포커스 수신기 전에 실행중인 ActionListener

  1. 탭에서 포커스를 잃어 버렸을 때 필드에 잘못된 값이 입력되면 팝업 창이 올바르게 표시됩니다.

  2. 그러나 필드에 잘못된 값을 입력하고 탭을 누르지 않으면 actionListener가 focusListener (Focus Lost) 전에 활성화되고 잘못된 값이 텍스트 파일에 저장되고 오류가 표시됩니다 메시지.

먼저 포커스 목록을 실행하여 잘못된 값을 파일에 저장하지 않도록해야합니까? 포커스 청취자 전에

답변

2

된 ActionListener 실행이

+0

나는 actionListener 안에 invokelater를 시도했지만 여전히 원하는 것을 얻지 못했습니다. public void actionPerformed (ActionEvent event) {EventQueue.invokeLater (new Runnable() {\t \t \t public void run() { if (componentManager.textField.getText(). equals ("")) {}});)' – user3079800