Utilização do switch!

Quero fazer um switch do jeito que dependendo do que for digitado as Labels vão aparecendo,
mais está dando erro no swtich.
Alguém poderia me ajudar ?

Meu código é esse:

[code]double nroPeriodos = Double.parseDouble(jTextField21.getText());

    switch (nroPeriodos){
        case 1: 
            jPanel2().setVisible(true);
        case 2:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
        case 3:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
        case 4:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
        case 5:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
        case 6:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
        case 7:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
        case 8:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
        case 9:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
        case 10:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
        case 11:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
        case 12:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
            jPanel18().setVisible(true);
        case 13:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
            jPanel18().setVisible(true);
            jPanel19().setVisible(true);
        case 14:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
            jPanel18().setVisible(true);
            jPanel19().setVisible(true);
            jPanel20().setVisible(true);
        case 15:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
            jPanel18().setVisible(true);
            jPanel19().setVisible(true);
            jPanel20().setVisible(true);
            jPanel21().setVisible(true);
        case 15:
            jPanel2().setVisible(true);
            jPanel5().setVisible(true);
            jPanel6().setVisible(true);
            jPanel7().setVisible(true);
            jPanel10().setVisible(true);
            jPanel11().setVisible(true);
            jPanel12().setVisible(true);
            jPanel13().setVisible(true);
            jPanel14().setVisible(true);
            jPanel15().setVisible(true);
            jPanel17().setVisible(true);
            jPanel18().setVisible(true);
            jPanel19().setVisible(true);
            jPanel20().setVisible(true);
            jPanel21().setVisible(true);
            jPanel22().setVisible(true);
    
    }[/code]

Você se esqueceu do “break”.

Não dá para fazer switch com variaveis do tipo double, somente int ou enum.

É esqueceu também

Você colocou case 15 duas vezes.
Aliás, que tal fazer assim e evitar o switch?

double nroPeriodos = Double.parseDouble(jTextField21.getText());  
           
jPanel2().setVisible(nroPeriodos >= 1);  
jPanel5().setVisible(nroPeriodos >= 2);  
jPanel6().setVisible(nroPeriodos >= 3);  
jPanel7().setVisible(nroPeriodos >= 4);  
jPanel10().setVisible(nroPeriodos >= 5);  
jPanel11().setVisible(nroPeriodos >= 6);  
jPanel12().setVisible(nroPeriodos >= 7);  
jPanel13().setVisible(nroPeriodos >= 8);  
jPanel14().setVisible(nroPeriodos >= 9);  
jPanel15().setVisible(nroPeriodos >= 10);  
jPanel17().setVisible(nroPeriodos >= 11);  
jPanel18().setVisible(nroPeriodos >= 12);  
jPanel19().setVisible(nroPeriodos >= 13);  
jPanel20().setVisible(nroPeriodos >= 14);  
jPanel21().setVisible(nroPeriodos >= 15);  
jPanel22().setVisible(nroPeriodos >= 16);  

Acho que usando vetores há também formas de evitar essa repetição de código toda…

Usando swicth também pode não ter as repetições de código.

int nPeriodos = Integer.parseInt(jTextField21.getText());    

switch (nroPeriodos){  
    case 16: jPanel22().setVisible(true);  
    case 15: jPanel21().setVisible(true);  
    case 14: jPanel20().setVisible(true);  
    case 13: jPanel19().setVisible(true);  
    case 12: jPanel18().setVisible(true);  
    case 11: jPanel17().setVisible(true);  
    case 10: jPanel15().setVisible(true);  
    case 9: jPanel14().setVisible(true);  
    case 8: jPanel13().setVisible(true);  
    case 7: jPanel12().setVisible(true);  
    case 6: jPanel11().setVisible(true);  
    case 5: jPanel10().setVisible(true);  
    case 4: jPanel7().setVisible(true);  
    case 3: jPanel6().setVisible(true);  
    case 2: jPanel5().setVisible(true);  
    case 1: jPanel2().setVisible(true);  
}

As condições estão trocadas :slight_smile: Em vez de <= deve ser >=

Que tal…

List<JPanel> list =new LinkedList<JPanel>();
list.add(jPanel2);    
list.add(jPanel5);    
list.add(jPanel6);    
list.add(jPanel7);    
list.add(jPanel10);
list.add(jPanel11);    
list.add(jPanel12);    
list.add(jPanel13);    
list.add(jPanel14);    
list.add(jPanel15);    
list.add(jPanel17);    
list.add(jPanel18);    
list.add(jPanel19);    
list.add(jPanel20);    
list.add(jPanel21);    
list.add(jPanel22);  
double nroPeriodos = Double.parseDouble(jTextField21.getText());
for(int i = 0;i<nroPeriodos;i++)
 list.get(i).setVisible(true);

Ou ainda:

[code]
List<JPanel> list =Arrays.asList(jPanel2, jPanel5, jPanel6, jPanel7,
jPanel10, jPanel11, jPanel12, jPanel13, jPanel14, jPanel15, jPanel17,
jPanel18, jPanel19, jPanel20, jPanel21, jPanel22);

int nroPeriodos = Integer.parseInt(jTextField21.getText());
for(int i = 0;i<nroPeriodos; i++)
list.get(i).setVisible(true);[/code]
>

Ultima…

JPanel list[] = {jPanel2, jPanel5, jPanel6, jPanel7, 
      jPanel10, jPanel11, jPanel12, jPanel13, jPanel14, jPanel15, jPanel17, 
      jPanel18, jPanel19, jPanel20, jPanel21, jPanel22};     

int nroPeriodos = Integer.parseInt(jTextField21.getText());
for(int i = 0;i<nroPeriodos; i++)   
   list[i].setVisible(true);

^^