第一个问题:
FRAME 窗口添加了组件后,为什么不响应 KEYPressed 事件???
第二个问题:
keyPress 与 keyRelease 事件一般成对触发,为什么在 调用了 JOptionPane.showMessageDialog() 方法后, keyReleased 事件不触发了??
下面是测试代码:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
public class FrameTest extends JFrame implements ActionListener
{
public KeyAdapter kd = new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
// JOptionPane.showMessageDialog(null,"使用了键盘!----------");
System.out.println("使用了键盘!----------");
}
public void keyReleased(KeyEvent e)
{
//JOptionPane.showMessageDialog(null,"释放了键盘!");
System.out.println("释放了键盘!----------");
}
};
public FrameTest()
{
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
JButton jb = new JButton("Click");
jb.addActionListener(this);
// cp.add(jb);
jb.setFocusable(false);
JTextField tf = new JTextField(10);
//cp.add(tf);
tf.addKeyListener(kd);
this.addKeyListener(kd);
this.setSize(300,180);
this.setTitle("FrameTest");
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
public void actionPerformed(ActionEvent event)
{
}
public static void main(String[] args)
{
FrameTest ft = new FrameTest();
}
}