2014-11-19 8 views
0

체크 박스 스위치 케이스를 구현할 방법이 있습니까?체크 박스 스위치 케이스 구현

예 : 2 개의 체크 박스를 선택하면 4 개의 체크 박스가 있는데, 원하는 출력으로 케이스를 트리거하는 방법은 무엇입니까?

double exam = 0.0, assign = 0.0, quiz = 0.0, ct = 0.0; 

       if (examchkbox.isSelected()) { 
       exam = Double.parseDouble(examtextfield.getText()); 
       } 
       if(ctchkbox.isSelected()) { 
       ct = Double.parseDouble(cttextfield.getText());  
       } 
       if(quizchkbox.isSelected()) { 
       quiz = Double.parseDouble(quiztextfield.getText());  
       } 
       if(asschkbox.isSelected()) { 
       assign = Double.parseDouble(asstextfield.getText());  
       } 
       if (!(exam + ct + quiz + assign == 100)) { 
       markerrorlbl.setText("Total marks must be 100"); 
       } 
       else { 

       // implementation of code here 
       } 

Design View

은 디자인이다.

하자 난 그냥 텍스트 필드의 값을 선택하고 스위치 케이스를 사용하여 마크를 저장하려면, 내가 시험클래스 테스트을 쳤다 말한다. 그게 가능하니?

이것은 내가 원하는 것에 관한 것이지만 확인란을 구현하는 방법을 잘 모릅니다.

switch(x) 
     { 
      case 1 : A = new exam(marks) ;total+=marks; break; 
      case 2 : A = new test(marks) ;total+=marks; break; 
      case 3 : A = new quiz(marks) ;total+=marks; break; 
      case 4 : A = new assignment(marks) ;total+=marks;break;  
     } 
+0

'if'와 함께 '&'를 사용하여 두 개의 체크 박스가 선택되어 있는지 확인할 수 있습니다. 왜 구체적으로 전환하고 싶습니까? – Eypros

+0

항목을 체크/체크하지 않을 때마다, 체크 된 항목의 수를 세는 함수를 호출하고 거기에 스위치 케이스를 추가하십시오. – amyn

+0

@Eypros 내 질문이 업데이트되었습니다. –

답변

0

코드에 이미있는 if 문 대신 스위치를 사용하려는 이유가 무엇입니까?

네 개의 확인란을 서로 독립적으로 선택할 수 있으므로 switch은 최선의 해결책이 아닙니다. 당신은 네 개의 체크 박스를, 그래서 2^4 = 16 개의 가능한 "체크 패턴"이 있습니다 : 당신이 스위치를 사용하는 경우

int pattern = (cb1.isSelected() ? 0b0001 : 0) 
      | (cb2.isSelected() ? 0b0010 : 0) 
      | (cb3.isSelected() ? 0b0100 : 0) 
      | (cb4.isSelected() ? 0b1000 : 0); 

switch (pattern) { 
    case 0b0001: 
     // code for when only checkbox 1 is checked 
     break; 
    ... 
    case 0b0011: 
     // code for when checkbox 1 and checkbox 2 are checked 
     break; 
    ... 
    case 0b1011: 
     // code for when only checkbox 1, 2 and 4 are checked 
     break; 
    ... 
} 

, 당신은 16 건 필요는. 이 4 독립적 인 경우 문이없는 else if의가 있음을

if (checkbox 1 is checked) { 
    // code for when checkbox 1 is checked 
} 
if (checkbox 2 is checked) { 
    // code for when checkbox 2 is checked 
} 
...  

참고 : 반면에, 당신은 단지 4 if 문이 필요합니다.

+0

오케이 지금 내가해야 할 일을 알아 냈습니다. 조언 해 주셔서 감사합니다! :) –