【问题标题】:Adding ActionListeners to an array of buttons in an applet将 ActionListeners 添加到小程序中的按钮数组
【发布时间】:2013-02-09 13:30:37
【问题描述】:

我制作了一个游戏,用户必须输入一个与十进制等效的二进制数。用户单击在 0 和 1 之间切换的按钮。这在 Eclipse 中作为应用程序运行良好,但是当我尝试作为小程序运行时,它没有正确运行。只有第一个按钮注册了任何事件(只添加了第一个动作监听器?)我怎样才能让它工作?欢迎任何有用的建议!

for(int i = 0; i < buttons.length; i++) {
    buttons[i] = new JButton("0");
    buttons[i].setActionCommand("0");
    buttons[i].setEnabled(true);
    bpanel.add(buttons[i]);
}                                 

    for (int i = 0; i<size;){
    buttons[i].addActionListener(   
    new ActionListener(){
           public void actionPerformed(ActionEvent e) {
           String choice = (String) e.getActionCommand();        

【问题讨论】:

  • 是的,但我需要添加多个 ActionListener

标签: java swing user-interface applet


【解决方案1】:

您在所有按钮上设置了相同的操作命令:
buttons[i].setActionCommand("0");

这里有这个特殊的代码:
String choice = (String) e.getActionCommand(); 每次点击按钮返回 0

尝试为每个按钮设置不同的操作命令

【讨论】:

  • @phcoding 如果有帮助 - 您可以接受两个答案中的任何一个
【解决方案2】:

所有按钮都具有相同的文本和相同的操作命令。

您可能应该将第一个循环中的第一行更改为:

buttons[i] = new JButton(i + "");
buttons[i].setActionCommand(i + "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多