下面是我的部分代码
JTextArea area = new JTextArea();
area.addCaretListener(new CaretListener(){ public void caretUpdate(CaretEvent e) {
if(e.getDot() != 0){ System.out.println(area.getText());
area.setText("");
} }});
我想在获取到文本后就将JTextArea清空,用area.setText("");应该是没问题的啊,可是会出现下面的异常
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification请大家指点一下,谢过了
JTextArea area = new JTextArea();
area.addCaretListener(new CaretListener(){ public void caretUpdate(CaretEvent e) {
if(e.getDot() != 0){ System.out.println(area.getText());
area.setText("");
} }});
我想在获取到文本后就将JTextArea清空,用area.setText("");应该是没问题的啊,可是会出现下面的异常
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification请大家指点一下,谢过了
解决方案 »
- JDBC连接Access数据库,使用Inser语句时,Values内容里面有中文就会报错,并且,错误信息也是乱码,请问怎么解决呢?
- 手机录放音软件
- fop格式控制问题
- 怎么读入一行整数?
- java 如何读取 outlook 通讯录
- 关于数据库连接,超级简单的.
- 怎样在swing上加图形
- 初学者的问题:如何将一个double类型的数字保留两位小数,在线等待!
- 最后一点分全给了吧,我是JAVA初学者,这些问题弄得我不想学下去了,搞不定我就不学了?,没人答我天天问
- 请问Swing中的JScrollPane有没有滚动事件?
- import java.awt.*是不是只能包含了一级目录?
- 请教一个关于java.awt.Image与sun.awt.image.ToolkitImage,java.awt.image.BufferedImage的问题
caretUpdate的触发条件是 当插入符的位置被更新时调用
那么你第一次输入数的时候,插入符位置被更新,那么方法调用,就会将文本设置为空,那么插入符位置又改变了,又会调用该方法,所以才会抛出非法状态异常。所以用这个方法来做不是很恰当,可以换个监听器,当输入完文本后按键盘(KeyEvent)或者点鼠标(MouseEvent)后再将文本域清空。还有,你觉得当你在文本框里输入东西后什么都没做却又马上又消失了,那么输入还有意义吗?
在System.out.println前面加
Thread.sleep(300);
试试,看还报异常么。你的需求让我蛋疼。
SwingUtils.invokeLater(new Runnable(){
public void run(){
area.setText("");
}
});你试试
给网址的朋友也谢了,我会看的