Utilização do switch!

8 respostas
doougllas

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:

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);
        
        }

8 Respostas

T

Você se esqueceu do “break”.

ignacio83

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

É esqueceu também

ViniGodoy

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…

pmlm

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);  
}
pmlm

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

Marky.Vasconcelos

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);
ViniGodoy

Ou ainda:

List&lt;JPanel&gt; 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&lt;nroPeriodos; i++)   
   list.get(i).setVisible(true);
>
Marky.Vasconcelos

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);

^^

Criado 24 de abril de 2009
Ultima resposta 24 de abr. de 2009
Respostas 8
Participantes 6