Java 我使用什么代码来获取复选框中的复选框数量?
我目前正在做一项实验任务。我基本上必须用Javafx创建一个GUI,提示用户制作比萨饼。虽然我没有像挑选奶酪或酱汁那样让它变得超级复杂,我被允许在配料上使用复选框。我遇到的问题是找出哪些盒子被选中,这样我就可以在最后计算出比萨饼的最终价格。这是我现在使用NetBeans的代码。一旦我有了复选框金额,我就可以算出剩下的,这样你就不必担心底部的返回过程了,谢谢Java 我使用什么代码来获取复选框中的复选框数量?,java,netbeans,Java,Netbeans,我目前正在做一项实验任务。我基本上必须用Javafx创建一个GUI,提示用户制作比萨饼。虽然我没有像挑选奶酪或酱汁那样让它变得超级复杂,我被允许在配料上使用复选框。我遇到的问题是找出哪些盒子被选中,这样我就可以在最后计算出比萨饼的最终价格。这是我现在使用NetBeans的代码。一旦我有了复选框金额,我就可以算出剩下的,这样你就不必担心底部的返回过程了,谢谢 public PizzaPane() { Font font = new Font(18); CheckBox cb1
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 + "");
}
在此处输入code
}您必须使用JCheckBox类中的方法才能知道复选框的状态。在您的情况下,您需要计算选中的复选框的数量,因此必须有一个计数器来计算复选框的数量,如下面的代码所示
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组件声明为实例变量,并在方法中包含上述代码。当更改所有内容时,它会是什么样子?我在回答中已经解释过了。你应该自己试试。