关于FocusListener的实现,我怎么响应不了,focusLost,focusGained事件啊?
我要做一个对话框,但失去焦点的时候就自动关闭(非模式的)
// 首先建立一个简单的对话框
JOptionPane jp = new JOptionPane(errMsg,
icon,
JOptionPane.DEFAULT_OPTION,
null,
new String[] {"OK"},
"OK");
JDialog d = jp.createDialog(null,"MESSAGE");
d.setModal(false);
d.addFocusListener(new MyFocusListener());
d.setVisible(true);
class MyFocusListener implements FocusListener{
public MyFocusListener(){
System.out.print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
}
public void focusLost(FocusEvent evt) {
System.out.println("Focus Losttttttttttt");
JDialog myDialog = (JDialog)evt.getOppositeComponent();
// The component lost the focus.
myDialog.dispose();
}
public void focusGained(FocusEvent evt) {
System.out.println("Focus Gainnnnnnnnnnn");
// The component that lost the focus
Component c = evt.getOppositeComponent();
}
}
我之行的效果是,focusLost和focusGained都没有执行,到底是为什么?不能用JDialog加监听器吗?应该怎么做呢?