Java MouseListener并不总是有效

Joe*_*ain 1 java swing awt jdialog mouselistener

我觉得奇怪的是,在我的项目中,并不总能听到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);                 
    }
});
Run Code Online (Sandbox Code Playgroud)

StaffPinDialog是一个JDialog,其中的引用已在其他地方创建.idClicked也始终初始化.

JB *_*zet 5

您不应该使用MouseListener来检测按钮点击.请改用ActionListener.

这还具有能够使用键盘单击按钮的额外优势.