JTextField용 값 변경 리스너
많은 개발자는 사용자가 텍스트 필드에서 Enter 키를 누른 후에만 액션 리스너가 실행되는 문제에 직면했습니다. . 이 문제를 해결하려면 값 변경을 즉시 감지할 수 있는 다른 접근 방식을 사용해야 합니다.
해결책은 "ActionListener" 대신 "DocumentListener"를 사용하는 것입니다. 텍스트 필드의 기본 문서는 해당 내용의 변경 사항을 자동으로 수신합니다. 이 문서에 리스너를 추가하면 사용자가 텍스트를 변경하자마자 특정 작업을 실행할 수 있습니다.
다음은 "DocumentListener"를 통합하는 수정된 코드 조각입니다.
textField.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { warn(); } public void removeUpdate(DocumentEvent e) { warn(); } public void insertUpdate(DocumentEvent e) { warn(); } public void warn() { if (Integer.parseInt(textField.getText())<=0){ JOptionPane.showMessageDialog(null, "Error: Please enter number bigger than 0", "Error Message", JOptionPane.ERROR_MESSAGE); } } });
이것은 코드는 텍스트 필드의 입력이 더 이상 조건(양의 정수)을 충족하지 않는 즉시 오류 메시지를 트리거합니다. Enter 키를 누르거나 추가 작업을 수행할 필요가 없습니다.
따라서 Enter 키를 누르는 것처럼 "ActionEvents"를 수신하는 "ActionListener"에 의존하는 대신 문서의 변경 사항을 관찰하는 "DocumentListener"를 활용합니다. , 텍스트 수정에 대한 즉각적인 반응이 가능합니다.
위 내용은 Enter를 누르지 않고 JTextField 값 변경을 즉시 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!