目标:键盘向JTextAre输入,JTextArea中添加了KeyListener,每次都会对输入进行判断,发现不符合要求时阻止向键盘输入。
我试了一下,几个事件的顺序是keyPressed keyTyped insertUpdate keyReleased,那么可不可以在keyPressed中判断,如果不符合要求,阻止向JTextArea输入?import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Test extends JFrame
{
JTextArea content = new JTextArea(20, 40);
public Test()
{
add(content);
content.getDocument().addDocumentListener(new DocumentListener()
{
public void changedUpdate(DocumentEvent e)
{
System.out.println("document changed");
}
public void insertUpdate(DocumentEvent e)
{
System.out.println("document insert");
}
public void removeUpdate(DocumentEvent e)
{
System.out.println("document removed");
}
});
content.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println("key pressed");
}
public void keyReleased(KeyEvent e)
{
System.out.println("key released");
}
public void keyTyped(KeyEvent e)
{
System.out.println("key typed");
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(400, 400));
pack();
setVisible(true);
}
public static void main(String[] args)
{
new Test();
}
}
我试了一下,几个事件的顺序是keyPressed keyTyped insertUpdate keyReleased,那么可不可以在keyPressed中判断,如果不符合要求,阻止向JTextArea输入?import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Test extends JFrame
{
JTextArea content = new JTextArea(20, 40);
public Test()
{
add(content);
content.getDocument().addDocumentListener(new DocumentListener()
{
public void changedUpdate(DocumentEvent e)
{
System.out.println("document changed");
}
public void insertUpdate(DocumentEvent e)
{
System.out.println("document insert");
}
public void removeUpdate(DocumentEvent e)
{
System.out.println("document removed");
}
});
content.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println("key pressed");
}
public void keyReleased(KeyEvent e)
{
System.out.println("key released");
}
public void keyTyped(KeyEvent e)
{
System.out.println("key typed");
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(400, 400));
pack();
setVisible(true);
}
public static void main(String[] args)
{
new Test();
}
}
解决方案 »
- 如何把java程序中引用到图片打包进jar
- 一个简单线程池的实现,求指导
- java调用linux命令执行不成功
- 不能向服务器上写数据,但是能读取??
- 界面怎么不能显示
- String.replace不工作?
- 小第初学java,在写一个applet小程序的时候出了点错,不知如何解决,请高手赐教,谢谢~~
- 吐血控诉-深圳易思博公司的无良行为,吐血送分!
- 我的applet编译通过了,但是在网页上却什么都没有,提示说can't be instantiated
- 我是JAVA的初学者,有谁想和我一起学的,请加我的QQ,221017
- JFreeChart使用问题
- Runtime.getRuntime().exec("shutdown -a");
content.setEditable(false);