gpt4 book ai didi

java - 如何拆分 getActionCommand() 以获得字符串中的第一个元素?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:59 25 4
gpt4 key购买 nike

我的程序中有一组JRadioButton

public class SalePanel extends JPanel  implements View { 
private JTextField sell = new JTextField(5);
private ButtonGroup buttons = new ButtonGroup();
private Stadium stadium;

我在这里添加了按钮:

private void build(Stadium stadium){
add(buttonBox(stadium));
}

这是我创建按钮的方式:

private Box buttonBox(Stadium stadium)
{ Box box = Box.createVerticalBox();
SaleListener listener = new SaleListener();
for (Group group: stadium.groups()) {
box.add(button(group, listener));

}
return box;
}


private JRadioButton button(Group group, SaleListener listener){
JRadioButton button = new JRadioButton();
button.addActionListener(listener);
buttons.add(button);
button.add(Box.createHorizontalStrut(35));
button.add(new JLabel(group.name() + " @ $"+ formatted(group.price())));
return button;
}

按钮的标签在这里:button.add(new JLabel(group.name() <--- 这是另一个类中的标签,名称如“Front "、"中间"或其他什么。

我现在的任务是:

  1. 从事件中获取单选按钮标签(我使用 getActionCommand() 获取标签)
  2. 从标签中获取组名(我需要将字符串拆分为空格,并获取返回数组中的第一个字符串)。
  3. 从名称中找到组:查找给定名称的组

所以,我按照以下方式进行:

private class SaleListener implements ActionListener { 
public void actionPerformed(ActionEvent e) {

String[] words = e.getActionCommand().split(" ");
String groupName = words[0];
for (Group group: stadium.groups()) {
if (group.matches(groupName)){
group.sell(sale());
update();
}
}
}
}

不幸的是,它不起作用,我找不到错误在哪里。你能给我关于这个任务的任何建议吗?我做错了什么?

附注这行代码 String[] words = e.getActionCommand().split(""); 没有按照我的意愿行事。我试着 System.out.println(words[0]) 是空的,但应该有组名 :(

最佳答案

这...

button.add(new JLabel(group.name() + " @ $"+ formatted(group.price())));

没有意义。你应该使用...

button.setText(group.name() + " @ $"+ formatted(group.price()));

还有……

button.setActionCommand(group.name());

如果你不关心剩下的文本......

关于java - 如何拆分 getActionCommand() 以获得字符串中的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067227/

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