如何在Java swing中为按钮网格实现actionlistener?

新手

我正在用Java开发一款小游戏。我正在创建一个10 * 10的按钮网格。但是,我无法访问actionlistener中单击的按钮的ID。这是我到目前为止的代码。

    String buttonID;
    buttonPanel.setLayout(new GridLayout(10,10));
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            buttonID = Integer.toString(++buttonCount);
            buttons[i][j] = new JButton();
            buttons[i][j].setName(buttonID);
            buttons[i][j].addActionListener(this);
            buttons[i][j].setDisabledIcon(null);
            buttonPanel.add(buttons[i][j]);
        }
    }

   public void actionPerformed(ActionEvent ae) {
    if (ae.getSource()==startButton) {
        System.out.println("Game has been started");
    }
    if (ae.getSource() == "34") {  //please see the description below
        System.out.println("Yes I have clicked this button");
    }
    else {
        System.out.println("Other button is clicked");
    }
}

目前,我只打印了一些内容。我不知道如何将ae.getsource()与单击的按钮进行比较。我只是尝试将其与“ 34”进行比较。但是,当我单击网格上的第34个按钮时,它仍会打印“单击其他按钮”。

疯狂程序员

使用按钮actionCommand属性可以根据您的要求唯一地标识每个按钮...

for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        buttonID = Integer.toString(++buttonCount);
        //...
        buttons[i][j].setActionCommand(String.toString(buttonID));
        //...
    }
}

然后,在你actionPerformed的方法,简单的外观起来actionCommand的财产ActionEvent....

public void actionPerformed(ActionEvent ae) {
    String cmd = ae.getActionCommand();
    if ("0".equals(cmd)) {
        //...
    } else if ...

同样,您可以使用buttons数组根据ActionEvent的来源查找按钮

public void actionPerformed(ActionEvent ae) {
    Object source = ae.getSource();
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            if (source == (buttons[i][j])) {
                //...
                break;
            }
        }
    }

但这取决于你...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Java GUI swing中制作更多按钮

来自分类Dev

如何在Java中实现反射?

来自分类Dev

如何在Java中实现方法链接?

来自分类Dev

如何在Android中为网格视图实现onclickevent和ontouchevent

来自分类Dev

如何在Java Swing中设置按钮的背景图像

来自分类Dev

如何在Java中为Swing组件设置字体粗细

来自分类Dev

正弦如何在Java中实现?

来自分类Dev

getClass()如何在Java中实现?

来自分类Dev

如何在Java Swing中重叠面板?

来自分类Dev

如何在Java中实现循环链表?

来自分类Dev

如何在Java Swing中抓住鼠标?

来自分类Dev

如何在Java中实现接口方法?

来自分类Dev

如何在Java中实现链接列表?

来自分类Dev

如何在Java swing中使用GradientPaint实现阴影效果?

来自分类Dev

如何在中间的Java中对齐按钮

来自分类Dev

如何在Java Swing中删除行?

来自分类Dev

如何在Java中实现YQL?

来自分类Dev

如何在Java Swing中为按钮网格实现actionlistener?

来自分类Dev

我们如何在Java swing中实现面向对象的概念

来自分类Dev

如何在Java中实现复合模式?

来自分类Dev

如何在Java中实现死锁示例

来自分类Dev

如何在Java中实现tablemodel?

来自分类Dev

如何在Java代码中为Android实现滚动视图?

来自分类Dev

单击一个按钮将调用JAVA Swing中另一个按钮的actionListener

来自分类Dev

如何在Java中执行“返回”按钮?

来自分类Dev

如何在ActionListener的actionPerformed [Java]中传递循环索引

来自分类Dev

为 Java Swing 元素实现 ActionListener 时如何解决静态引用错误?

来自分类Dev

如何在 Java Swing 中对齐组件?

来自分类Dev

如何在 Java GUI 中为按钮创建不同的颜色?

Related 相关文章

热门标签

归档