2013-04-04 54 views
0

我有一个JButton标题为“选择” 在此创建的JButton等类,我想用一个if条件与actionPerformed方法的类。可以从JButton的Event Handler类调用ActionPerformed方法吗?

类似的信息(伪代码)

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

这可能吗?

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

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

+0

看看这里:http://stackoverflow.com/questions/8489387/calling-actionperformed-of-a-button-explicitly – redc0w 2013-04-04 12:29:34

回答

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,并使用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。阅读。

0

不,你不能打电话,if需要boolean表达/价值,但这种方法返回void。

相关问题