首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java按钮操作命令

Java按钮操作命令
EN

Stack Overflow用户
提问于 2014-05-01 18:00:49
回答 1查看 880关注 0票数 1

我正在用Java创建一个简单的扫雷游戏。9x9号。

我创建了一个JPanels数组和一个按钮数组;我将每个按钮添加到各自的JPanel中。然后将JPanels添加到JFrame中。

如何区分动作事件上的每个按钮?

以下是我的一些代码:

代码语言:javascript
复制
int gridx = 9;
int gridy = 9;
JButton[] buttons = new JButton[gridx*gridy];
JPanel[] jpanels = new JPanel[gridx*gridy];

public Minesweeper(){

    super("Minesweeper");


    setLayout(new GridLayout(9,9));
    JPanel panel = new JPanel();
    int i = 0;
    for(i = 0; i<gridx*gridy; i++){
        jpanels[i] = new JPanel();
        buttons[i] = new JButton();
        buttons[i].addActionListener(buttonEvent);
        jpanels[i].setLayout(new GridLayout(1,1));
        jpanels[i].add(buttons[i]);
        add(jpanels[i]);            
    }
    //buttons[67].setEnabled(false);
    setSize(300,300);
    setVisible(true);
}

我能想到这样做的唯一方法是向按钮中添加文本,如下所示:

代码语言:javascript
复制
    buttons[i] = new JButton(i);

然后打电话给getActionCommand(),但我不希望文本出现在按钮上。还有其他想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-01 18:13:51

您可以使用AbstractButton#setActionCommand

在你的循环中:

代码语言:javascript
复制
buttons[i].setActionCommand(i+"");

然后当您使用i时,您将得到getActionCommand

注意,我在对另一个答案的评论中确实提到,我将创建一个新的类Mineextends JButton,我认为它是一个更好、更完整的解决方案。然而,这使得这项工作完成得相当快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23413589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档