Choice

11 respostas
D

Boa tarde!!

Pessoal, estou criando um programa utilizando MVC…

Tenho 3 classes… uma é modelo, outra é a interface gráfica e a última é o tratamento de eventos…

Na interface gráfica eu tenho um choice entre outros componentes…
O que eu quero é obter o que o usuário selecionou no choice…
Tentei fazer isso da seguinte forma:
Fiz um método get na classe da interface gráfica

public String getCategoria(){ return CategoriaCh.getSelectedItem(); }

E na classe de eventos criei um objeto da classe da interface gráfica (com o nome pc) e implementei a interface ItemListener e fiz o seguinte no método da interface:

public void itemStateChanged(ItemEvent arg0){ String categoria = pc.getCategoria(); System.out.println(categoria); }
Ao fazer isso dá erro…
Alguém pode me ajudar…??

Agradeço desde já,
Dina

11 Respostas

Marck

Olá.

olhando assim (não tenho certeza), pode ser q o seu Choice inicie com “nada” selecionado…no caso seria um null. Quando vc clica no Choice ele já chama o metodo q vc esta implementando…

mas, passa o erro p a gente dar uma olhada…

abraço.

D

Olá!

O erro é o seguinte:

[color=red]Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at controle.CadastroListener.itemStateChanged(CadastroListener.java:36)

at java.awt.Choice.processItemEvent(Unknown Source)

at java.awt.Choice.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)[/color]

Só aparece o erro ao selecionar algum item no choice…
Ah, uma coisa que eu esqueci de falar é que adicionei o ItemListener ao choice na interface gráfica…

Marck

O seu Choice começa com algum valor pré-selecionado?
Caso não, inicie-o com algum valor. Pode ser isso que esteja causando o NullPointer.

public String getCategoria(){ 
            
             //como não tem nada selecionado, ele retorna null.
             return CategoriaCh.getSelectedItem(); 
 }
D

Começa sim com um valor pré-selecionado…
:frowning: E mesmo assim dá erro…

D

Pessoal,

Esse método:

public String getCategoria(){ return categoriaCh.getSelectedItem(); }

Sendo categoriaCh um choice, está correto??
Digo falar que ele retornará uma String…
e utilizar o getSelectedItem() ??

Marck

Olá…

Sim está correto. Eu fiz um exemplo aqui mas não estou conseguindo chegar a esta exception ai…
poderia passar mais uma parte do código?

D

Marck, achei o meu erro…

Mto idiota por sinal… :frowning:

O erro estava acontecendo pq em um dos campos era pra digitar número, e eu estava digitando letras, então dava pane e o programa levava td como nulo (algo assim…)

Enfim, desculpa o trabalho todo que dei…
E mto obrigada!!

D

Marck, achei o meu erro…

Mto idiota por sinal… :frowning:

O erro estava acontecendo pq em um dos campos era pra digitar número, e eu estava digitando letras, então dava pane e o programa levava td como nulo (algo assim…)

Enfim, desculpa o trabalho todo que dei…
E mto obrigada!!

D

Marck, achei o meu erro…

Mto idiota por sinal… :frowning:

O erro estava acontecendo pq em um dos campos era pra digitar número, e eu estava digitando letras, então dava pane e o programa levava td como nulo (algo assim…)

Enfim, desculpa o trabalho todo que dei…
E mto obrigada!!

D

Marck, achei o meu erro…

Mto idiota por sinal… :frowning:

O erro estava acontecendo pq em um dos campos era pra digitar número, e eu estava digitando letras, então dava pane e o programa levava td como nulo (algo assim…)

Enfim, desculpa o trabalho todo que dei… e pela demora em responder…

E mto mto mto obrigada mesmo!!

D

Marck, achei o meu erro…

Mto idiota por sinal… :frowning:

O erro estava acontecendo pq em um dos campos era pra digitar número, e eu estava digitando letras, então dava pane e o programa levava td como nulo (algo assim…)

Enfim, desculpa o trabalho todo que dei… e pela demora em responder…

E mto mto mto obrigada mesmo!!

Criado 5 de setembro de 2007
Ultima resposta 5 de set. de 2007
Respostas 11
Participantes 2