gpt4 book ai didi

java - 从按钮数组中返回选择

转载 作者:行者123 更新时间:2023-11-29 08:04:35 26 4
gpt4 key购买 nike

我有一个从 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]);
}

最佳答案

我不确定你的问题到底是什么,所以我有几个答案:

  1. 如果您想将按钮创建拉入一个方法中 - 请参阅示例中的 getButton 方法

  2. 如果您想在单击时访问实际的按钮,您可以使用 ActionEvent.getSource() 方法(未显示)或在单击期间将按钮标记为最终按钮来实现声明(如示例所示)。从那里你可以用按钮做任何你想做的事。

  3. 如果您的问题是“我如何创建一个接受字母数组并将最后单击的按钮返回给我的方法”,您应该修改您的问题以明确说明这一点。我没有在这里回答这个问题,因为除非你有非常特殊的情况,否则这可能不是解决你正在处理的问题的好方法。您可以解释为什么需要这样做,我们可以建议更好的替代方案。

例子:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TempProject extends Box{
/** Label to update with currently pressed keys */
JLabel output = new JLabel();

public TempProject(){
super(BoxLayout.Y_AXIS);
for(char i = 'A'; i <= 'Z'; i++){
String buttonText = new Character(i).toString();
JButton button = getButton(buttonText);
add(button);
}
}

public JButton getButton(final String text){
final JButton button = new JButton(text);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "You have clicked: "+text);
//If you want to do something with the button:
button.setText("Clicked"); // (can access button because it's marked as final)
}
});
return button;
}

public static void main(String args[])
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setContentPane(new TempProject());
frame.pack();
frame.setVisible(true);
new TempProject();
}
});
}
}

关于java - 从按钮数组中返回选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com