保留按钮中的参考
Map
String letters[] = {"0", "a", "b", "c", "d", "e", "f"};JButton btn;int count = 0;HashMap<String,JButton> buttonCache = new HashMap<String,JButton>();for (int f=1; f < 7;f++){ for (int i=1; i < 7;i++){ btn = new JButton(letters[f]+i, cup); mainGameWindow.add(btn[i]); btn.addActionListener(this); String stringCommand = Integer.toString(randomArrayNum()); btn.setActionCommand(stringCommand); buttonMap.put(stringCommand,btn); count++; if(count == 18){ generateArray(); } }}
然后,在您的中
ActionListener,从命令中获取按钮:
public void actionPerformed(ActionEvent e) { String command = ((JButton) e.getSource()).getActionCommand(); JButton button = buttonCache.get(command); if (null != button) { // do something with the button }}
编辑
五年后重新审视此答案,我不知道为什么我建议使用
HashMap:P
这段代码做的完全一样,没有第三方
Map:
String letters[] = {"0", "a", "b", "c", "d", "e", "f"};int count = 0;for (int f=1; f < 7;f++){ for (int i=1; i < 7;i++) { String stringCommand = Integer.toString(randomArrayNum()); Button btn = new JButton(letters[f]+i, cup); btn.setActionCommand(stringCommand); btn.addActionListener(this); mainGameWindow.add(btn[i]); // NOTE : I have no idea what this is for... count++; if(count == 18){ generateArray(); } }}
在
ActionListener…
public void actionPerformed(ActionEvent e) { JButton button = (JButton) e.getSource(); String command = button.getActionCommand(); // do something with the button // the command may help identifying the button...}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)