有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将ActionListeners添加到小程序中的按钮数组中

我做了一个游戏,用户必须输入一个相当于十进制的二进制数。用户单击在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();        

共 (2) 个答案

  1. # 1 楼答案

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

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

    buttons[i] = new JButton(i + "");
    buttons[i].setActionCommand(i + "");
    
  2. # 2 楼答案

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

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

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