考虑您想要使用“关闭应用程序”菜单项关闭 Java 应用程序。
3 种可能的解决方案是(使用 ActionListener 或 MouseAdapter 或 MouseListener):
menuItemClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
menuItemClose.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.exit(0);
}
});
menuItemClose.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
3 个解决方案,只有第一个会触发。
这怎么解释? 其他一些组件是否有相同的行为? 遇到这种情况如何正确处理事件?
最佳答案
Sounds like the developers of Java languare forget to propagate events from menuItems using
addActionListener
.
不,开发人员建议您使用 Action
“将功能和状态与组件分离。”
关于java - 通过 addMouseListener 添加时如何检测鼠标点击 menuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540626/