我使用什么代码来获取CheckBoxes中检查的盒子数量?

时间:2017-11-25 04:06:13

标签: java netbeans

我目前正在从事实验室工作。我基本上必须使用Javafx创建一个GUI,提示用户制作披萨。虽然不是让它变得非常复杂,而是挑选出可能是奶酪或酱汁的类型,但我可以使用复选框作为浇头。我遇到的问题是弄清楚哪些方块已经过检查,以便我可以计算最终总数到最后的比萨饼价格。这是我现在使用NetBeans的代码。一旦我有了复选框的金额,我就可以弄明白其余部分,所以你真的不必担心底部的流程返回谢谢!

public PizzaPane()
{
    Font font = new Font(18);



    CheckBox cb1 = new CheckBox("Bacon");
    CheckBox cb2 = new CheckBox("Peppers");
    CheckBox cb3 = new CheckBox("Sausage");
    CheckBox cb4 = new CheckBox("Extra Cheese");
    CheckBox cb5 = new CheckBox("Ham");
    CheckBox cb6 = new CheckBox("Onions");

    Button push = new Button("Total!");
    push.setOnAction(this::processReturn);

    Label outputLabel = new Label("Property Output:");
    outputLabel.setFont(font);
    GridPane.setHalignment(outputLabel, HPos.RIGHT);

    result = new Label("---");
    result.setFont(font);
    GridPane.setHalignment(result, HPos.CENTER);


    setAlignment(Pos.CENTER);
    setHgap(50);
    setVgap(20);
    setStyle("-fx-background-color: yellow");
    setGridLinesVisible(false);



    add(cb1 , 1, 2);
    add(cb2 , 1, 3);
    add(cb3 , 1, 4);
    add(cb4 , 1, 5);
    add(cb5 , 1, 6);
    add(cb6 , 1, 7);
    add(push, 2, 0);
    add(outputLabel, 0, 1);
    add(result, 1, 1);






}
  public void processReturn(ActionEvent event)

{

    double fValue =(10);

    result.setText(fValue + "");
}

enter code here}

1 个答案:

答案 0 :(得分:1)

您必须使用JCheckBox类中的isSelected方法来了解复选框的状态。在您的情况下,您想要计算选中的复选框的数量,因此您必须有一个计数器来计算复选框的数量,如下面的代码所示。

int numberOfCheckedBoxes = 0;

numberOfCheckedBoxes += (cb1 != null && cb1.isSelected() ? 1 : 0);
numberOfCheckedBoxes += (cb2 != null && cb1.isSelected() ? 1 : 0);
numberOfCheckedBoxes += (cb3 != null && cb1.isSelected() ? 1 : 0);
numberOfCheckedBoxes += (cb4 != null && cb1.isSelected() ? 1 : 0);
numberOfCheckedBoxes += (cb5 != null && cb1.isSelected() ? 1 : 0);
numberOfCheckedBoxes += (cb6 != null && cb1.isSelected() ? 1 : 0);

System.out.println("Number of Checked Boxes = " + numberOfCheckedBoxes);

更好的设计是将所有ui组件声明为实例变量,而不是在方法中使用上述代码。