0

我有一个名为“select”的 JButton 在创建该 JButton 和其他类的类中,我想使用带有 ActionPerformed 方法的 if 条件。

类似的东西(伪代码)

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

这可能吗?

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

如果可能,它的语法是什么?ActionEvent 的参数是什么?谢谢!

4

2 回答 2

0

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

于 2013-04-04T12:30:08.463 回答
0

最简单和最干净的方法是为每个按钮添加一个专用的、特定的动作监听器。这样,当调用 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,通过getSource()ActionEvent的方法知道是哪个组件触发了事件。将结果与每个潜在按钮进行比较,以确定哪个是已单击的按钮:

    @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
        }
    }

ActionEvent 的参数是什么?

答案在文档中。阅读。

于 2013-04-04T12:31:18.107 回答