我目前正在从事实验室工作。我基本上必须使用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
}
答案 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组件声明为实例变量,而不是在方法中使用上述代码。