>Java >java지도 시간 >Enter를 누르지 않고 JTextField 값 변경을 즉시 감지하는 방법은 무엇입니까?

Enter를 누르지 않고 JTextField 값 변경을 즉시 감지하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-24 08:07:17736검색

How to Detect JTextField Value Changes Immediately Without Pressing Enter?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.