bom pessoal não to conseguindo resolver um problema com evento no Jcomobobox oq eu quero é que quendo eu selecionar uma opção seja exibido no console qual opção eu escolhi segue o codigo para quem puder ajudar
importjava.awt.BorderLayout;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privatefinalJButtonsorteio,sair;privatefinalJLabellabel;publicJComboBoxopcao;privatefinalJPanelpainelnorte,painelcenter,painelsul;publicSorteGrande(){super("Sorte Grande v.01");setLayout(newBorderLayout());//Tratamento botão sortear com evento sorteio=newJButton("Sortear");//Tratamento botão sair com eventosair=newJButton("Sair");sairexit=newsair();sair.addActionListener(exit);//tramento Painelpainelcenter=newJPanel();painelnorte=newJPanel();painelsul=newJPanel();//Tratamento do labellabel=newJLabel("Escolha a opção para gerar o palpite");//Adicionando paineisadd(painelnorte,BorderLayout.NORTH);add(painelcenter,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);//painel nortpainelnorte.add(label);painelcenter.add(opcao);//painel sulpainelsul.add(sorteio);painelsul.add(sair);pack();//tratamento do Jcombobox//Tratamento JComboBoxfinalStringescolha[]={"Dupla Sena","Loto Fácil","Loto Mania","Mega Sena","Quina"};opcao=newJComboBox(escolha);opcao.addItemListener(newItemListener()// classe interna anônima{// trata evento JComboBoxpublicvoiditemStateChanged(ItemEventevent){if(event.getStateChange()==ItemEvent.SELECTED)System.out.print("a opção escolhida foi"+opcao.getSelectedIndex());}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}publicclasssairimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringopcoes[]={"Sim","Não"};intopc=JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);//if(opc==0)System.exit(0);}}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();}}
//1º duvida eu tenho nescessariamente que criar um objeto para o array //ou posso por exemploStringarray[]={item1,item2,item3};//2º duvida oq ta acontecendo nesta linha?? oq faz esta classe //DefaultComboBoxModel??DefaultComboBoxModelmodel=newDefaultComboBoxModel(array);//3º qual a diferença distoJComboBoxbox=newJComboBox(model);//para isto to perguntando pq no livro do Daitel ta ilustrado //como abaixo apesar que nem assim eu consegui fazer funcionar // mas é so pra saber mesmobox=newJComboBox(model);
F
filipibh
ai galera fiz ai oq vcs sugeriram e continua dando pau desta vez nem ta aparecendo na tela o frame ja tem umas 2 semanas que to apanhando com um negocio simples deste se alguem puder ai consertar o codigo pra min e comentar as modificações so pra min entender agradeço
oq eu quero é que seja escrito na console a opção que for escolhida no JComboBox
desde já agradeço
importjava.awt.BorderLayout;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privatefinalJButtonsorteio,sair;privatefinalJLabellabel;publicJComboBoxopcao;privatefinalJPanelpainelnorte,painelcenter,painelsul;publicSorteGrande(){super("Sorte Grande v.01");setLayout(newBorderLayout());//Tratamento botão sortear com evento sorteio=newJButton("Sortear");//Tratamento botão sair com eventosair=newJButton("Sair");sairexit=newsair();sair.addActionListener(exit);//tramento Painelpainelcenter=newJPanel();painelnorte=newJPanel();painelsul=newJPanel();//Tratamento do labellabel=newJLabel("Escolha a opção para gerar o palpite");//Adicionando paineisadd(painelnorte,BorderLayout.NORTH);add(painelcenter,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);//painel nortpainelnorte.add(label);painelcenter.add(opcao);//painel sulpainelsul.add(sorteio);painelsul.add(sair);pack();box.addActionListener(listener);//Tratamento JComboBox//*****esta linha apresenta erroString[]array=newString{"Dupla Sena","Loto Fácil","Loto Mania","Mega Sena","Quina"};//*****erroDefaultComboBoxModelmodel=newDefaultComboBoxModel(array);//****erroJComboBoxbox=newJComboBox(model);//****bloco com erroActionListenerlistener=newActionListener(){publicvoidactionPerformed(ActionEvente){System.out.println(box.getSelectedItem());}};setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}publicclasssairimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringopcoes[]={"Sim","Não"};intopc=JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);//if(opc==0)System.exit(0);}}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();}}
M
mrsmylle
Tente assim:
importjava.awt.BorderLayout;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privateJButtonsorteio,sair;privateJLabellabel;publicJComboBoxopcao;privateJPanelpainelnorte,painelcenter,painelsul;publicSorteGrande(){super("Sorte Grande v.01");setLayout(newBorderLayout());//Tratamento botão sortear com evento sorteio=newJButton("Sortear");//Tratamento botão sair com eventosair=newJButton("Sair");Sairexit=newSair();sair.addActionListener(exit);//tramento Painelpainelcenter=newJPanel();painelnorte=newJPanel();painelsul=newJPanel();//Tratamento do labellabel=newJLabel("Escolha a opção para gerar o palpite");//tratamento do Jcombobox//Tratamento JComboBoxfinalStringescolha[]={"Dupla Sena","Loto Fácil","Loto Mania","Mega Sena","Quina"};opcao=newJComboBox(escolha);//painel nortpainelnorte.add(label);painelcenter.add(opcao);opcao.addItemListener(newItemListener()// classe interna anônima{// trata evento JComboBoxpublicvoiditemStateChanged(ItemEventevent){if(event.getStateChange()==ItemEvent.SELECTED)System.out.print("a opção escolhida foi"+opcao.getSelectedIndex());}});//painel sulpainelsul.add(sorteio);painelsul.add(sair);//Adicionando paineisadd(painelnorte,BorderLayout.NORTH);add(painelcenter,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);pack();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}publicclassSairimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringopcoes[]={"Sim","Não"};intopc=JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);//if(opc==0)System.exit(0);}}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();}}
F
filipibh
bom não testei o codigo ainda mas se tiver como vc comentar as modificações valew!
M
mrsmylle
Faça comparações com o seu codigo antigo, houve apenas inversões!!Nenhum valor foi alterado!!
F
filipibh
olha continua sem funcionar
bom galera agradeço a todos vcs a boa vontade ai em me ajudar,
sem querer ser exigente gostaria que vcs testassem as suas modificações pra ver se funciona ou não pq fuçar eu to fuçando no codigo ja tem alguns dias e nada to precisando da solução do problema!!!
mesmo assim obrigado a todos que tentaram me ajudar ai valew!!
F
filipibh
bom mexi novamente no codigo e nada de funcionar mas pelo menos so apresenta um erro no escolha.addActionListener(this)
se alguem ainda não tiver de saco cheio deste topico e quiser me dar uma força ai agradeço
importjava.awt.BorderLayout;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privatefinalJButtonsorteio,sair;privatefinalJLabellabel;privatefinalJPanelpainelnorte,painelcenter,painelsul;privatefinalJComboBoxcombo;publicSorteGrande(){super("Sorte Grande v.01");setLayout(newBorderLayout());//Tratamento botão sortear com evento sorteio=newJButton("Sortear");//tratamento JComboBoxString[]vetor={"Dupla Sena","Loto Fácil","Loto Mania","Mega Sena","Quina"};JComboBoxescolha=newJComboBox(vetor);//so a linha abaixo que ta dando pauescolha.addActionListener(this);//Tratamento botão sair com eventosair=newJButton("Sair");sairexit=newsair();sair.addActionListener(exit);//tramento Painelpainelcenter=newJPanel();painelnorte=newJPanel();painelsul=newJPanel();//Tratamento do labellabel=newJLabel("Escolha a opção para gerar o palpite");//Adicionando paineisadd(painelnorte,BorderLayout.NORTH);add(painelcenter,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);//painel nortpainelnorte.add(label);painelcenter.add(escolha);//painel sulpainelsul.add(sorteio);painelsul.add(sair);pack();setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}//inicio tratamento evento jcomboboxpublicvoidactionPerformed(ActionEvente){JComboBoxcb=(JComboBox)e.getSource();Stringescolha=(String)cb.getSelectedItem();System.out.println(escolha);}//fim tratamento evento jcomboboxpublicclasssairimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringopcoes[]={"Sim","Não"};intopc=JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);//if(opc==0)System.exit(0);}}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();}}
Spool
// Criando um array de String´s que representara os itens do JComboBoxString[]array=newString{"Item 1","Item 2","Item 3"};// Criando o modelo para o JComboBox com o array criado acimaDefaultComboBoxModelmodel=newDefaultComboBoxModel(array);// Criando o Componente JComboBox com o modelo definido acimaJComboBoxbox=newJComboBox(model);/** * Voce pode capturar o item selecionado de diversas maneiras, * Aqui vou demonstrar o evento ao selecionar o item no proprio JComboBox **/// Criando o ActionListener(existem diversas formas de se fazer isso tambem)ActionListenerlistener=newActionListener(){publicvoidactionPerformed(ActionEvente){System.out.println(box.getSelectedItem());}};// Adicionando o evento ao selecionar um itembox.addActionListener(listener);