我在JTextArea获得光标事件后,把JTextArea里面的文本清空掉。
但是我这样的话,我就不能在文本里面输入字符,与获得光标清空文本会发生冲突。
// 我在这里又需要像dataTextAread输入数据
this.dataTextArea.addKeyListener(new KeyAdapter() { @Override
public void keyTyped(KeyEvent e) {
}
});///--------------------------------------- // 这个用于获得默认文本框的数据,然后获得焦点后清空
dataTextArea.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
EditRS232Panel.this.dataTextArea.setText("");
}
});
/// 获得焦点又清空了,所有两者有点矛盾。有什么办法让我预先设置的文本数据清空,但是不会影响我后面输入的数据呢?
但是我这样的话,我就不能在文本里面输入字符,与获得光标清空文本会发生冲突。
// 我在这里又需要像dataTextAread输入数据
this.dataTextArea.addKeyListener(new KeyAdapter() { @Override
public void keyTyped(KeyEvent e) {
}
});///--------------------------------------- // 这个用于获得默认文本框的数据,然后获得焦点后清空
dataTextArea.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
EditRS232Panel.this.dataTextArea.setText("");
}
});
/// 获得焦点又清空了,所有两者有点矛盾。有什么办法让我预先设置的文本数据清空,但是不会影响我后面输入的数据呢?
// 这个用于获得默认文本框的数据,然后获得焦点后清空
dataTextArea.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
EditRS232Panel.this.dataTextArea.setText("");
}
});
把你這個listener單獨定義成一個類 然後產生一個對象,加監聽的時候dataTextArea.addCaretListener(listener)
去掉的時候
dataTextArea.removeCaretListener(listener)
public void caretUpdate(CaretEvent e) {
EditRS232Panel.this.dataTextArea.setText("");
dataTextArea.removeCaretListener(this);
}
});//我这样就删掉了,只是有点不明白为什么是this了