【发布时间】:2015-05-09 08:11:25
【问题描述】:
我正在处理 JButton 事件。我有一个 JPanel 类,我们称之为 Panel1,其中包含一个公共 JButton,我们称之为 Button1。单击此按钮时:
//Inside Panel1
Button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("1")
}
});
从另一个 JPanel 类,我们称之为 Panel2,它包含 Panel1,我必须处理“Button1 Pressed”事件。
//Inside Panel2
Panel1.Button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("2")
}
});
得到的结果是:
2
1
但我有兴趣拥有:
1
2
有什么建议吗?
【问题讨论】:
-
按相反的顺序添加动作监听器:先添加另一个面板的动作监听器,然后是面板的动作监听器。
-
@RealSkeptic:不,不能保证工作。在这种情况下没有订单保证。对于原始海报,看起来您正在使用静态字段,我建议您不要这样做。如果您想保证顺序,您可能必须更改程序的逻辑。不确定其他人,但我需要有关您的整体问题的更多信息以提供帮助。
标签: java swing jbutton event-listener actionevent