有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以从JButton的事件处理程序类调用ActionPerformed方法吗?

我有一个名为“选择”的按钮 在创建该JButton和其他类的类中,我想将if条件与ActionPerformed方法一起使用

比如(伪代码)

if(_selectListener.actionPerformed(ActionEvent)) { //i.e., if select Button is clicked,
    //do something
}

这可能吗

我想调用这个方法,因为我必须处理这样一种情况:玩家应该能够通过单击“选择”按钮或另一个“滚动”按钮来选择某个内容,我想使用类似于上面的一组if语句的东西来控制它

如果可能,它的语法是什么?什么是争论事件? 谢谢!


共 (2) 个答案

  1. # 1 楼答案

    最简单、最干净的方法是为每个按钮添加一个专用的、特定的动作监听器。这样,当调用actionPerformed()方法时,您可以确定关联的按钮已被单击,而不需要测试单击了哪个按钮:

    selectButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // handle click on select button
        }
    });
    
    scrollButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // handle click on scroll button
        }
    });
    

    另一种方法是使用公共ActionListener,并使用ActionEvent的getSource()方法来知道哪个组件触发了事件。将结果与每个潜在按钮进行比较,以确定哪个按钮已被单击:

        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == selectButton) {
                // handle click on select button
            }
            else if (e.getSource() == scrollButton) {
                // handle click on scroll button
            }
        }
    

    什么是争论事件

    答案在the documentation中。读一下

  2. # 2 楼答案

    不,您不能调用,if需要boolean表达式/值,但此方法返回void