我有一个数组可以从a-z创建按钮,但是我想在一个方法中使用它,它返回按下的按钮。
这是我的按钮原始代码:
String b[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
for(i = 0; i < buttons.length; i++)
{
buttons[i] = new JButton(b[i]);
buttons[i].setSize(80, 80);
buttons[i].setActionCommand(b[i]);
buttons[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String choice = e.getActionCommand();
JOptionPane.showMessageDialog(null, "You have clicked: "+choice);
}
});
panel.add(buttons[i]);
}
5条答案
按热度按时间0qx6xfy61#
1.首先,当您要创建按钮时,请将按钮上的文字从a设置为z。
2.现在,当您的gui准备就绪,单击按钮时,提取按钮上的文本,然后显示您已单击此按钮的消息。
如:
我告诉你,你要如何提取按下按钮的名称,我使用
getText()
方法pbossiut2#
我不确定你的问题到底是什么,所以我有几个答案:
如果要将按钮创建拉入方法中,请参见
getButton
示例中的方法如果要在单击实际按钮时访问它,可以使用
ActionEvent.getSource()
方法(未显示)或在声明期间将按钮标记为final(如示例所示)。从那里你可以用按钮做任何你想做的事。如果您的问题是“如何创建一个接收字母数组并将最后一次单击的按钮返回给我的方法”,那么您应该修改您的问题以明确地说明这一点。我在这里没有回答这个问题,因为除非你有一个非常特殊的情况,否则这可能不是一个解决问题的好方法。你可以解释为什么你需要这样做,我们可以建议一个更好的选择。
例子:
bpsygsoo3#
我不确定您到底想要什么,但是如何将密钥存储在队列中(例如
Deque<String>
)以及任何需要轮询已按下按钮的方法查询该队列。这样你也可以得到按键的顺序。或者,您可以在每个按钮(或调度事件的中心按钮)上注册其他操作侦听器,这些按钮在触发事件时接收事件。我可能更喜欢这种方法,但这取决于你的具体要求。
qlzsbp2j4#
尝试更改此侦听器的操作
cwxwcias5#
ActionListener
可以返回(每Listeners
摆动中)Object
那代表JButton
从这个JButton
你可以决定,getActionCommand()
或者getText()