从ActionListener获取按钮名称?

从ActionListener获取按钮名称?,第1张

从ActionListener获取按钮名称?

保留按钮中的参考

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...}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5135654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存