4
키를 누를 때마다 포커스가 JTextField 내에 있고 JTextField의 내용을 JTextArea의 새 줄에 추가 할 때마다 JTextArea를 업데이트하는 다음 코드가 있습니다.내 KeyAdapter가 항상 한 걸음 뒤로 물러납니다.
내 문제는 내가 키를 누를 때마다 JTextArea 업데이트가 항상 내가 원하는 곳의 핵심이라는 것입니다.
예 :"cat"을 JTextField에 입력하고 "ca"만 JTextArea에 표시합니다. 원하는 문자열 인 "cat"대신 "cat"만 사용하십시오.
언제든지 읽어 주셔서 감사합니다. 입력 된 문자가 JTextField를 문서로 저장하기 전에 keyPressed
도 발생하기 때문에 발생
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class Testing extends JFrame {
JTextField text;
JTextArea textArea;
public static void main(String[] args) {
Testing gui = new Testing();
gui.go();
}
public void go() {
this.setLayout(new BorderLayout());
text = new JTextField();
text.addKeyListener(new TestKeyListener());
textArea = new JTextArea();
this.add(text, BorderLayout.NORTH);
this.add(textArea, BorderLayout.CENTER);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setSize(300,300);
this.setVisible(true);
}
private class TestKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent evt) {
textArea.append(text.getText() + "\n");
}
}
}
감사를 마치 마법처럼 작동합니다
나는 당신이 달성하려고하는 물건을 할 JTextField를 문서의 변경을들을 수있는 두 가지 방법을 알고, 그들 각각이 특정한 경우에 적용됩니다. 하나가 다른 것보다 더 적절한가요? – JamesJavaDoc의 차이점에 대한 특별한 코멘트를 실제로 찾지는 못했지만, 단순히 다릅니다 만 다른 이벤트와 옵션을 제공합니다. 예를 들어 UndoableEditListener를 사용하면 문서에 대한 변경 사항을 취소 할 수 있습니다. –
그리고 DocumentListener는 문서에서 정확히 무엇이 바뀌 었는지 말합니다. 그 정보를 필요로 할 때 유용합니다. –