Java Swing/awt-鼠标按下直到ActionEvent之后会发生什么



有没有办法查看在调用mousePressed直到触发ActionEvent之后会发生什么?我需要创建一个UML序列图,从mousePressed(MouseEvent)开始,直到ActionEvent被触发。是否有一些文档显示了这一点?我尝试在eclipse中调试一个示例,但由于某种原因,我看不到ActionEvent是何时触发的。

jbutton.addMouseListener(new MouseListener() {
**THIS IS CALLED FIRST**
        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub
            System.out.println("pressed");
        }
    });

    jbutton.addActionListener(new ActionListener() {
        **AFTER SOME TIME THIS IS CALLED**
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("action");
        }
    });

感谢

是的,有文档显示了这一点:ButtonModel。

从该页面:

按下按钮顶部的鼠标会使模型同时处于待命状态和按下状态。只要鼠标保持向下,即使鼠标移动到按钮之外,模型也会保持按下状态。相反,只有当鼠标在按钮的范围内保持按下状态时,模型才处于待命状态(它可以移入或移出按钮,但模型仅在按钮内的时间段内处于待命状态)。当模型处于待命状态时释放鼠标时,即在之前按下鼠标(但尚未释放)后,在按钮上方释放鼠标时会触发一个按钮,并触发ActionEvent。释放鼠标后,模型将变为非武装且无压力。

正如@dbrown93所指出的,应用程序代码没有理由在JButton中添加MouseListener。请记住,还有其他方法可以激活JButton,例如使用键盘;不需要鼠标活动。

相关内容

最新更新