目标:键盘向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();
}
}