Java Button Action Command

大憨熊 提交于 2019-12-11 12:59:58

问题


I'm creating a simple Minesweeper game in Java. Size 9x9.

I create an array of JPanels and an array of buttons; I add each button to its respective JPanel. then i add the JPanels to the JFrame.

How do i distinguish between each button on the action event?

Here's some of my code:

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);
}

The only way i can think about doing this is adding text to the button like so:

    buttons[i] = new JButton(i);

Then calling getActionCommand() but i dont want text to show up on the button. Any other ideas?


回答1:


You can use AbstractButton#setActionCommand.

In your loop:

buttons[i].setActionCommand(i+"");

Then you'll get i back when you use getActionCommand

Note I did mention in a comment on another answer that I would create a new class Mine which extends JButton which I believe to be a better and more complete solution. This however gets the job done rather quickly.



来源:https://stackoverflow.com/questions/23413589/java-button-action-command

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!