Switch no Jtree?

14 respostas
paulinhohd

E ae galera?

Tem como eu fazer um switch em um JTree?

tipo eu pego o item selecionado da Jtree assim:Arvore.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent Evento) { ItemSelecionadoArvore = (DefaultMutableTreeNode)Arvore.getLastSelectedPathComponent();e por ae vai…

Só que eu gostaria de controlar o ItemSelecionadoArvore ppor CASEs…tipo case 1 , case 2 … isso é possível?
Pois o tipo da váriável ItemSelecionadoArvore é DefaultMutableTreeNode…

Quero fazer case, porque já fiz utilizando if’s…porém ele tá fazendo bagunça…

Alguém pode dar um help?

Valeu! 8)

14 Respostas

_fs

Não entendi o que você quer fazer. Se você já sabe qual item foi selecionado, para que os ifs?

E, pelo amor das convenções de código, nomes de variáveis devem começar com letra minúscula. Se você insistir em fazer do seu jeito, só fica bem mais difícil para outras pessoas entenderem seu código.

paulinhohd

Foi mal, nem tinha reparado no lance de variáveis começarem com letras maiúsculas…

O meu problema do Ifs é que:

minha JTree só aparece pós eu clicar em um botão “Entrar” ou seja, todas funcionalidades dela estão dentro deste botão entrar…portanto, como irei controlar onde o usuário clicou sem os IF’s???

Valeu! 8)

E

Acho que voce pode fazer o seguinte: cada nodo da JTree será um objeto que conterá um atributo do tipo int e um metodo getInt(), ao clicar na arvore voce pega int pelo getInt() e passa pro switch e trata… isso te ajuda?

paulinhohd

Já tentei fazer isso:

Por exemplo:

Meus nodos estão como Nível1, nível12, nível13 …
E eu pego o item selecionado com a váriável:
ItemSelecionadoArvore, então tentei o segueinte:

int opcao = Integer.parseInt(ItemSelecionadoArvore);

Porém o Switch dá formato inválido, então como faço para aplicar int a isto???

Valeu! 8)

E

ItemSelecionadoArvore é uma String, por acaso?

paulinhohd

Ele é DefaultMutableTreeNode, porém já tentei passar pra String e deu certo…daí passei o String pra int , mas não deu…o switch fala formato invélido…

Valeu! 8)

E

o switch só aceita valores integrais, que vc possa saber qual eh o anterior e qual é o proximo, por ex, int, char… aliás, cole o seu codigo aqui

paulinhohd

Vejam esse super trecho de código:


[editado pelo Rafael]Por favor, edite a mensagem e anexe o arquivo com a porcao de codigo em questao[/editado pelo Rafael]

O problema tá o seguinte, se eu incluir um cliente logo na primeira execução, ele incluiu normal…porém se logo em segui eu quiser alterar qualquer cliente, ele me trás a janela de Cliente já cadastrado, ele fica meio perdido…e eu gostaria de manter os IF’s ao invés de utilizar Switch…
Valeu! 8)

cv1

Cara, preciso falar uma coisa bem seria com vc: o problema aqui nao eh o switch no JTree.

  • Voce nao seguiu as convencoes de codigo usadas por 11 em cada 10 programadores Java.

  • Nao existe distincao nenhuma entre interface grafica, regras de negocio e acesso a dados. Nao ta nem tudo na mesma classe, o que ja ia ser ruim o bastante, por um numero infindavel de razoes: ta tudo no mesmo METODO.

  • Voce esta usando Statements quando deveria estar usando PreparedStatements, e nao esta fechando as conexoes, statements nem resultsets direito (ou seja, num bloco finally).

  • Tem uma quantidade inacreditavel de coisas em escopos maiores do que precisavam estar, e muitas coisas que sao um punhado de variaveis e deveriam ser um objeto por si so. Quebre esse codigo em coisas menores e com um proposito bem definido.

paulinhohd

cv:
Cara, preciso falar uma coisa bem seria com vc: o problema aqui nao eh o switch no JTree.

  • Voce nao seguiu as convencoes de codigo usadas por 11 em cada 10 programadores Java.

  • Nao existe distincao nenhuma entre interface grafica, regras de negocio e acesso a dados. Nao ta nem tudo na mesma classe, o que ja ia ser ruim o bastante, por um numero infindavel de razoes: ta tudo no mesmo METODO.

  • Voce esta usando Statements quando deveria estar usando PreparedStatements, e nao esta fechando as conexoes, statements nem resultsets direito (ou seja, num bloco finally).

  • Tem uma quantidade inacreditavel de coisas em escopos maiores do que precisavam estar, e muitas coisas que sao um punhado de variaveis e deveriam ser um objeto por si so. Quebre esse codigo em coisas menores e com um proposito bem definido.

Muito obrigado pelas dicas e críticas.

O meu caso é o seguinte, tive de aprender java sozinho e na marra…porém, esse meu programa, eu sei que realmente ele não está digno de um programador Java o que deve ser o seu caso…
Como eu aprendi java com todo meu esforço e sozinho, apenas postando aqui e lendo muito…meu programa até que está muito bem funcional, e tem muita coisa que não é qualquer um que faz…
Meu objetivo no momento, é fazer algo funcional, se vc tiver algumas dicas, podemos comunicar por e-mail…

Não acho ruim pelas suas críticas, ter praticamente falado que meu código é um lixo…muito pelo contrário, acho isso bom…assim aprendo mais…

Valeu! 8)

paulinhohd

Que convenções?

Como separar interface gráfica?não entendi…

Como faço para colocar em métodos diferentes se a funcionalidade é tudo do mesmo método?

Está tudo a um simples botão…o “ENTRAR”…ele é praticamente meu prog inteiro…

não vejo diferença em usar Prepare para Statement, em questão de funcionalidade, funcionam do mesmo jeito…

Como pode perceber, preciso de ajuda! :cry:

Valeu! 8)

E

Algumas dicas:

  • Para separar a interface gráfica da regra de negócios, se informe sobre MVC (model-view-controller)
  • Em relação aos métodos, simplifique a tarefa ao máximo, faça cada método executar uma operação específica, cada método deve ter uma funcionalidade bem definida.
Rafael_Steil

paulinhohd:
meu programa até que está muito bem funcional, e tem muita coisa que não é qualquer um que faz…

O ponto nao eh nem esse, mas sim organizacao do codigo, facilidade de manutencao, divisao de responsabilidades e afins.

email? mas ai vamos matar o coitado do forum do guj :mrgreen:

Rafael

paulinhohd

Rafael Steil:

O ponto nao eh nem esse, mas sim organizacao do codigo, facilidade de manutencao, divisao de responsabilidades e afins.

email? mas ai vamos matar o coitado do forum do guj :mrgreen:

Rafael

Então, a meu ponto de vista de um mero inciante programador…até que tá organizado meu código, e não está muito difícil para manutenção…

E a intenção do e-mail não é matar o GUJ huahuah…
Valeu! 8)

Criado 27 de junho de 2005
Ultima resposta 28 de jun. de 2005
Respostas 14
Participantes 5