2017-11-25 1 views
0

현재 실험실 과제를 진행 중입니다. 나는 기본적으로 Javafx로 사용자가 피자를 만들 것을 촉구하는 GUI를 만들어야한다. 어쩌면 치즈 나 소스의 종류를 따기처럼 복잡하게 만드는 대신 토핑을위한 체크 박스를 사용할 수 있습니다. 내가 겪었던 문제는 피자의 최종 가격에 대한 최종 방정식의 최종 합계를 계산할 수 있도록 체크 된 상자를 파악하는 것입니다. 이것은 NetBeans를 사용하는 코드입니다. 체크 박스 크기를 정하면 나머지를 파악할 수 있으므로 하단 감사에서 프로세스 반환에 대해 실제로 염려 할 필요가 없습니다!CheckBox에서 선택한 상자의 수를 얻기 위해 사용하는 코드는 무엇입니까?

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

당신은 체크 박스의 상태를 알 수 있도록 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 구성 요소를 인스턴스 변수로 선언하고 대신 위의 코드를 메서드에 포함하는 것입니다.

+0

모든 것을 바꿀 때 정확히 어떻게 보일까요? – Pineda

+0

나는 이미 내 대답에 설명했다. 너 혼자 힘으로 해봐야 해. – cdaiga

관련 문제