2013-05-12 55 views
-1

我有许多GUI窗体,每个GUI窗体上都有许多按钮。我想要检测用户何时点击这些按钮中的任何一个。向按钮按下添加处理程序

我的问题是这样的:我应该单独向每个按钮添加代码,还是可以通过按下按钮时调用的公用方法按下每个按钮?如果我使用公共方法(我宁愿这样做),该方法如何检测调用该函数的按钮?按钮必须是公共变量吗?

目前我使用此代码(这样的作品,我想知道如果我可以做的更好):

loginButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) 
     { 
      System.out.println("You clicked the button"); 
     }}); 
+0

*“我想要检测用户何时单击这些按钮上的任何按钮。”然后,您通常需要确定按下哪个按钮做出适当的行动。出于这个原因,通常认为每个按钮/菜单项使用一个“ActionListener”或“AbstractAction”会更好。 – 2013-05-12 11:56:17

+0

注意到这个问题现在已扩展到3个问题:最好将它限制为每个问题一个问题。请不要忘记添加一个问号。 – 2013-05-12 11:57:28

+0

看看是否可以使用ActionEvent来获取目标。学会使用sdk – qwr 2013-05-12 11:59:28

回答

1

我应该单独代码添加到每个按钮,或者我可以照顾到每个 按钮是否按下按钮时被调用的公用方法按下按钮?

我的想法(和理智),我会分开动作侦听器/处理程序。一般来说,它保持个人行为/代码简单并符合要点。

如果需要,每个按钮/菜单可以有多个动作侦听器。

我也想看看的Action API

如果我使用的公共方法(我宁愿做),请问该方法 检测调用该函数的按钮?按钮必须是 一个公共变量?

如果您真的想遵循此方法,您可以将ActionEvent传递给它,它将包含对动作来源以及动作命令的引用。

个人而言,我不会。这些类型的方法在管理,维护,调试和更新方面非常困难