我有一个包含表单上的单选按钮的swing应用程序.ButtonGroup
但是,我看到了可用的方法,我似乎无法获得所选的名称JRadioButton
.这是我到目前为止所能说的:
从ButtonGroup,我可以执行一个getSelection()
返回ButtonModel
.从那里,我可以执行一个getActionCommand
,但似乎并不总是有效.我尝试了不同的测试并获得了不可预测的结果.
另外ButtonGroup
,我可以从中获得枚举getElements()
.但是,然后我必须遍历每个按钮只是为了检查它是否是所选择的按钮.
有没有更简单的方法来找出选择了哪个按钮?我正在Java 1.3.1和Swing中编程.
我遇到了类似的问题并解决了这个问题:
import java.util.Enumeration; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; public class GroupButtonUtils { public String getSelectedButtonText(ButtonGroup buttonGroup) { for (Enumerationbuttons = buttonGroup.getElements(); buttons.hasMoreElements();) { AbstractButton button = buttons.nextElement(); if (button.isSelected()) { return button.getText(); } } return null; } }
它返回所选按钮的文本.
我会循环通过你的JRadioButtons
电话isSelected()
.如果你真的想离开,ButtonGroup
你只能去模特.您可以将模型与按钮匹配,但如果您可以访问按钮,为什么不直接使用它们?
你必须添加setActionCommand
到JRadioButton
那时只是做:
String entree = entreeGroup.getSelection().getActionCommand();
例:
java = new JRadioButton("Java"); java.setActionCommand("Java"); c = new JRadioButton("C/C++"); c.setActionCommand("c"); System.out.println("Selected Radio Button: " + buttonGroup.getSelection().getActionCommand());
您可以将actionAction和放到每个单选按钮(字符串)中。
this.jButton1.setActionCommand("dog"); this.jButton2.setActionCommand("cat"); this.jButton3.setActionCommand("bird");
假设它们已经在ButtonGroup(在本例中为state_group)中,则可以像下面这样获得所选的单选按钮:
String selection = this.state_group.getSelection().getActionCommand();
希望这可以帮助