【发布时间】:2013-03-28 20:45:29
【问题描述】:
我觉得奇怪的是,在我的项目中,mouselistener 并不总是被听到。有没有其他人遇到过这个?还是我做错了什么?有时我必须点击它几次才能打开它。我确实会在两次点击之间等待,看看这是否是性能问题。
JButton btnPin = new JButton("Pin");
btnPin.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent arg0) {
if(staffPinDialog == null || staffPinDialog.isShowing() == false)
staffPinDialog = new StaffPinDialog(idClicked);
}
});
StaffPinDialog 是一个 JDialog,其中引用已在其他地方创建。 idClicked 也总是被初始化。
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
mouseClicked(...)并不总是在每次按下鼠标按钮时被调用,特别是如果鼠标在按下和释放之间移动时不会被调用。mousePressed(...)或mouseReleased(...)更好,但话虽如此,您根本不应该以这种身份使用 MouseListeners,而应该使用 ActionListeners(根据 JB Nizet 的回答)或 AbstractActions。
标签: java swing awt jdialog mouselistener