【发布时间】:2012-06-19 15:46:17
【问题描述】:
我正在做一个拼贴项目(比如餐厅),而且我的 Java 不太好(他们并没有真正尝试教我们)。该项目的原理是显示一条消息,说明我选择了哪些单选按钮和复选框。
我有 5 个单选按钮,它们用于选择餐点,还有 5 个复选框用于选择配菜。我已经设法让单选按钮工作,但我不知道如何让复选框工作......
这是单选按钮的代码(这适用于所有 5 个):
private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) {
if (evt.getSource().equals(jRadioButton1))
{
Meal= jRadioButton1.getText(); //Meal is a String
}
我为复选框尝试了相同的代码,但它只在消息中显示一个配菜,即使我选择了多个...
显示消息的按钮代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(rootPane, "You have chosen:\n" + String.valueOf(Meal) + "\n" + String.valueOf(SideDish));
}
所以基本上,如果有人愿意提供帮助,请告诉我如何使复选框起作用......每个选中的复选框都会显示在消息中,如下所示:
您已选择: 比萨//餐 番茄酱//精选配菜#1 辣椒//精选配菜#2 羊乳酪//精选配菜#3
我希望我的问题很清楚......
【问题讨论】:
-
由于复选框可以被多次选中,我会将它们保存在一种矢量或列表中。然后,如果您单击按钮,您只需遍历它们并调用类似 'if(yourList.elementAt(i).isChecked) // getText() 并将字符串存储在某处'
-
@ValentinoRu 正如 Attila 回答的那样,Set 是此类工作的更好集合:没有副本,项目的单个实例,只需使用
add和remove方法(无需添加更多逻辑)。 -
同意,不幸的是,我刚刚在发布带有矢量的示例答案后才读到它。
标签: java swing joptionpane jcheckbox jradiobutton