Código muito grande

Bom dia a todos…

eu gostaria de uma ajuda de vocês. estou desenvolvendo uma agenda médica, mas o meu código ficou muito grande e o netbeans 6.7 não compila. gostaria da ajuda dos amigos para tentar resumir o meu código.

eu tenho um Jlist para horários, um Jlist para dias, um JcomboBox para mês e um JtextArea para informar os dias, dia da semana, mes e horario. para cada mes fiz uma verificação do dia da semana e para cada dia de semana verifiquei o horário.

para tender melhor eis parte do código

   StringTokenizer st = new StringTokenizer(Agendados.getText(),"\n");// agendados é jtextarea
      String[] elem = new String[st.countTokens()];
      for(int j=0; st.hasMoreTokens(); j++){
          elem[j] = st.nextToken();
          if(elem[j].contains("Janeiro")){
              if(elem[j].contains("Segunda-feira") ){
                if(elem[j].contains("08:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"08:00");
                }else if(elem[j].contains("08:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"08:30");
                }else if(elem[j].contains("09:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"09:00");
                }else if(elem[j].contains("09:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"09:30");
                }else if(elem[j].contains("10:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"10:00");
                }else if(elem[j].contains("10:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"10:30");
                }else if(elem[j].contains("11:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"11:00");
                }else if(elem[j].contains("11:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"11:30");
                }else if(elem[j].contains("13:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"13:00");
                }else if(elem[j].contains("13:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"13:30");
                }else if(elem[j].contains("14:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"14:00");
                }else if(elem[j].contains("14:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"14:30");
                }else if(elem[j].contains("15:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"15:00");
                }else if(elem[j].contains("15:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"15:30");
                }else if(elem[j].contains("16:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"16:00");
                }else if(elem[j].contains("16:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"16:30");
                }else if(elem[j].contains("17:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"17:00");
                }else if(elem[j].contains("17:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"17:30");
                }else if(elem[j].contains("18:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"18:00");
                }else if(elem[j].contains("18:30") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"18:30");
                }else if(elem[j].contains("19:00") ){
                    Alterar(elem[j].substring(0, 2),"Segunda-feira","Janeiro",Integer.parseInt("" +idDias.getText()),"19:00");
                }
            }
        }

na verdade eu gostaria de saber como diminuir a parte que verefica os horários.

grato pela ajuda.

oi,

  1. não utilize “String” no seu código, utilize constantes ao invés disso

por exemplo, transforme “Segunda-Feira” em

private static final String SEGUNDA = "Segunda-Feira"
  1. uma forma mais elegante de usar os if’s pode ser vista no tópico abaixo

http://www.guj.com.br/posts/list/55885.java

Creio que vc poderia usar Enum, de repente vc pesquisando vc poderia ver se funciona pra vc.

Obrigado a todos.
vou pesquisar mais a fundo sobre Enum, pois ainda não tenho esse conhecimento.

Isso parece ser coisa bem mais simples que isso… O que é que realmente vem em Agendados.getText() ?

Aparece isso:

04 Sexta-feira Junho 08:00
07 Segunda-feira Junho 08:30
10 Quinta-feira Junho 09:00
17 Quinta-feira Junho 09:30

sendo 04,07,10,17 são dias (JList), Sexta-feira, Segunda-feira, Quinta-feira, Quinta-feira é uma conversão de data pra extrair o dia semana, Junho está em um JComboBox e 08:00, 08:00, 09:00,09:30 é outro JList.

Não sei o que esse alterar faz mas… não será isto que queres?

String []linhas = Agendados.getText().split("\n");
for(String linha: linhas){
    String[] valores = linha.split(" ");
    Alterar(valores[0], valores[1], valores[2], Integer.parseInt(idDias.getText()), valores[3]); 
}

[quote=pmlm]Não sei o que esse alterar faz mas… não será isto que queres?

String []linhas = Agendados.getText().split("\n");
for(String linha: linhas){
    String[] valores = linha.split(" ");
    Alterar(valores[0], valores[1], valores[2], Integer.parseInt(idDias.getText()), valores[3]); 
}

[/quote]

É bem isso que eu precisava. esse alterar é um método que fiz alterar os dados cadastrados.
Um forte abraço e muito obrigado pela ajuda.