单选按钮和setSelected或其他?

时间:2013-08-15 20:02:12

标签: java swing jradiobutton

我有一个带有标签,文本字段,组合框和一个带有2个单选按钮的按钮组的JFrame表单。在另一种形式中,我有一个JTable,其中填充了关于学生的数据(学生ID,姓名......),当我从表中选择一行时,表单打开,其字段需要填充相同的值(例如,如果彼得彼得森是从表中选出的,那么他的名字应该在表格上的文字字段名称中显示,所以我做了txtfieldName.setText(student.getName),我的问题是如何为单选按钮做这个?我需要有吗?表中是/否列,所以当我选择一个值为的表行时,比如说'是',以便在表单上选择是的单选按钮?

4 个答案:

答案 0 :(得分:1)

这取决于。是应用于基础表数据的单选按钮部分的值(即来自您的学生对象)吗?如果是,那么,不,你不必拥有是/否列,尽管如果你试图对它做出决定它可能是有用的。相反,您只需从学生对象中提取它。

我会将yes / no值显示为列如果它与decsion制作过程相关。

如果您要用来设置单选按钮的值不是学生的一部分,那么您需要做出一些决定。

就个人而言,我会创建一个表示行状态的包装器对象,这将包括学生对象以及您可能需要的任何其他相关详细信息。这使数据自包含,并使访问该信息更容易。

如果这不合适,那么,是的,您可能需要将值显示为列并将其作为表模型中的单独值维护。

这也将归结为您如何实施表格模型

更新了OP的反馈

好的,那就是你的student对象牌。您可以从boolean获取student属性(通过单选按钮开始在屏幕上显示)并做出选择......

trueRadioButton.setSelected(booleanValue);
trueRadioButton.setSelected(!booleanValue);

使用JCheckBox代替......

可以让它更简单
checkBox.setSelected(booleanValue);

答案 1 :(得分:0)

您可以通过ButtonGroup

选择单选按钮

group.getSelected(button.getModel(), true);

答案 2 :(得分:0)

if (result.getString(5).equals("Male")) {
     jRadioButton1.setSelected(true);
} else { 
     jRadioButton2.setSelected(true);
}

答案 3 :(得分:-1)

您不必知道选择哪个单选按钮先验,因此如果您不想,您不必在表格中包含该信息。您可以将'selected'参数设置为false来实例化两个单选按钮:

JRadioButton button = new JRadioButton("My button label", false);
JRadioButton otherButton = new JRadioButton("My other button label", false);
ButtonGroup group = new ButtonGroup();
group.add(button);
group.add(otherButton);