okButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
okButtonActionPerformed(evt);
}
}); private void okButtonActionPerformed(java.awt.event.ActionEvent evt)
{
//点击ok button 后执行的代码!
}
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
okButtonActionPerformed(evt);
}
}); private void okButtonActionPerformed(java.awt.event.ActionEvent evt)
{
//点击ok button 后执行的代码!
}
{
public void mousePressed(java.awt.event.MouseEvent evt)
{
formMousePressed(evt);
}
});private void formMousePressed(java.awt.event.MouseEvent evt)
{ System.out.println("可以监听!!!!!!!!!!");
}
import java.awt.event.*;import javax.swing.*;public class TestEvent extends JFrame{
public TestEvent(){
setSize(400,300);
//addKeyListener(new Listener());
P p1=new P();
System.out.println (p1.isFocusable());
//p1.setFocusable(true);
p1.setBackground(Color.red);
this.getContentPane().add(BorderLayout.NORTH,p1);
P p2=new P();
p2.setBackground(Color.green);
this.getContentPane().add(BorderLayout.SOUTH,p2);
setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new TestEvent();
}
}class P extends JPanel{
public P(){
addKeyListener(new Listener());
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
System.out.println (e);
}
});
}
}class Listener extends KeyAdapter{
public void keyPressed(KeyEvent e){
System.out.println (e);
}
}KeyListener加在JFrame是没问题,可以被监听。但是如果不把p1.setFocusable(true);注释掉也能监听按钮
其实用p1.isFocusable());测定,p1已经是一个可获得焦点的
但就是要加setFocusable(true)才能监听键盘事件就是加了setFocusable(true);
也是Frame在监听键盘事件,好像p1还是无法获得焦点的。