我想显示显示我选择了什么消息(JAVA)(I want to display a message s

2019-10-16 21:45发布

我在做一个项目(像餐馆)拼贴,和我不是在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 

我希望我的问题是清楚的...

Answer 1:

既然你要零个或多个复选框显示文本,您需要检查每一个是否被选中,并连接所产生的文本,而不是只保留一个选项。 此外,由于复选框,可以单独选中和未选中,它可能是更好只是在一瞬间被按下时,而不是试图让他们的跟踪所有的时间按钮,检查它们的状态。 例如:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

  SideDish = "";
  if (jCheckBox1.getState()))
  {
    SideDish += jCheckBox1.getText();
  }
  ...
  if (jCheckBox5.getState()))
  {
    SideDish += ", " + jCheckBox5.getText();
  }

  JOptionPane.showMessageDialog(rootPane, "You have chosen:\n" + Meal + "\n" + SideDish);
}

这只是一个例子,它并不总是正确显示逗号分开 - 我将离开修复你作为一个练习:-)

更好的解决方案是使用字符串集合收集小菜 - 再次,您可以尝试提高对这个代码。

顺便说一句,你不需要String.valueOf()打印String太我删除它从上面的代码。 和Java编码习惯是开始与小写的变量/字段名。



Answer 2:

正如你可以同时选择多个复选框,你应该收集集合中的检查值。 Set<String>想到,你只能选择一次一个配菜。

另外,你没有这个问题,因为在单选按钮的每个选择覆盖了前一个,但你需要从集合中删除项目,如果其相应的复选框取消选中是。

Set<>是一个接口,您将需要一个实现类实际使用它。 在你的情况下HashSet<>将工作(见文档为可用的方法集和HashSet的 )

当显示的配菜的选择,你可以枚举集合中的元素和eother打印他们一个接一个或收集的结果在一个字符串通过连接的元素。

注意 :您可能不evenneed设定的,如果你要的复选框直接访问:在显示小菜选择哪个时,只需选中复选框的状态和积累如上文所述的选择字符串



Answer 3:

下面是一个例子

比方说,你有4个sidedishes

Vector<JCheckBox> boxes = new Vector<JCheckBox>
boxes.add(checkbox1) .... .add(checkbox4);

并单击按钮

Vector<String> sideDishes = new Vector<String>();
for(int i=0; i<boxes.size(); i++){
   if(boxes.elementAt(i).isSelected(){
      sideDishes.add(boxes.elementAt(i).getText();
   }
}


Answer 4:

我想,首先应该学会的是如何分析问题,以及如何使用谷歌或其他搜索引擎网站,所以尝试读取这个文件,并期待例子



文章来源: I want to display a message showing what I selected (Java)