2

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

2 回答 2

1

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

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

buttons[i] = new JButton(i + "");
buttons[i].setActionCommand(i + "");
于 2013-02-09T13:40:08.763 回答
1

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

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

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

于 2013-02-09T13:49:15.040 回答