我在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("");
            }
       });
/// 获得焦点又清空了,所有两者有点矛盾。有什么办法让我预先设置的文本数据清空,但是不会影响我后面输入的数据呢?

解决方案 »

  1.   

    清空后,把你獲得焦點那個監聽remove掉就行了
      

  2.   


     // 这个用于获得默认文本框的数据,然后获得焦点后清空
     dataTextArea.addCaretListener(new CaretListener() {
                public void caretUpdate(CaretEvent e) {
                        EditRS232Panel.this.dataTextArea.setText("");
                }
           });
    把你這個listener單獨定義成一個類  然後產生一個對象,加監聽的時候dataTextArea.addCaretListener(listener)
    去掉的時候
    dataTextArea.removeCaretListener(listener) 
      

  3.   

    OK! 解决了.... 谢谢 horizonlyhw 的帮忙~
      

  4.   

    dataTextArea.addCaretListener(new CaretListener() {
                public void caretUpdate(CaretEvent e) {
                        EditRS232Panel.this.dataTextArea.setText("");
                        dataTextArea.removeCaretListener(this);
                }
            });//我这样就删掉了,只是有点不明白为什么是this了