Problemas na seleção do JCombobox

2 respostas
H

Eu gostaria de que, quando o usuário selecionasse um dos itens do JCombobox ele exibisse uma mensagem na tela, porém eu só estou conseguindo exibir quando o meu formulário é carregado, depois eu posso selecionar qualque item que ele não aparece na tela, alguem pode ajudar?

OBS: Os comentarios são uns testes que eu tentei mas não obtive resultado

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;

class TextArea1 implements ActionListener {
      JTextArea text;

      public static void main(String[] args) {
             TextArea1 gui = new TextArea1();
             gui.go();
      }

      public void go() {
             JFrame frame = new JFrame();
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             JPanel panel = new JPanel();

             JButton button = new JButton("Enviar Mensagem");
             button.addActionListener(this);

             text = new JTextArea(10,20);
             text.setLineWrap(true);

             JScrollPane scroller = new JScrollPane(text);
             scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
             scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

             panel.add(scroller);

             JLabel label = new JLabel("Digite a sua Mensagem");

             JPanel panel2 = new JPanel(); 

             /*class ChoiceListener implements ActionListener {
                   public void ActionPerformed(ActionEvent event) {
                          String usuario = (String)combobox.getSelectedItem();
                          System.out.println(usuario);
                   }
             }*/

             JComboBox combobox = new JComboBox();
             combobox.addItem("Higor");
             combobox.addItem("Higor 2");
             combobox.addItem("Higor 3");
             combobox.setEditable(true);
             //ActionListener listener;
             //listener = new ChoiceListener();
             //combobox.addActionListener(listener);

             //Obtem o usuario selecionado do combobox
             String usuario = (String)combobox.getSelectedItem();
             System.out.println(usuario);


             panel.add(combobox);

             frame.getContentPane().add(BorderLayout.EAST, panel2);
             frame.getContentPane().add(BorderLayout.NORTH, label);
             frame.getContentPane().add(BorderLayout.CENTER, panel);
             frame.getContentPane().add(BorderLayout.SOUTH,button);

             frame.setSize(350,300);
             frame.setVisible(true);
      }

      public void actionPerformed(ActionEvent ev) {
             text.append("Botão Clicado \n ");
      }
}

2 Respostas

silva.fernandes

Para capturar a seleção que é feita em um JComboBox vc precisa do evento ActionListener

Olha um exemplo abaixo …

package com.fabiano;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JComboBoxDemo extends JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;


	public JComboBoxDemo() {
		String[] comboTypes = { "Numeros", "Alfabetos", "Simbolos" };

		
		JComboBox comboTypesList = new JComboBox(comboTypes);
		comboTypesList.setSelectedIndex(2);
		comboTypesList.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JComboBox jcmbType = (JComboBox) e.getSource();
				String cmbType = (String) jcmbType.getSelectedItem();
				JOptionPane.showMessageDialog(null, "Você Escolheu " + cmbType,
						"Você escolhe!!", JOptionPane.INFORMATION_MESSAGE);

			}
		});

		
		setLayout(new BorderLayout());
		add(comboTypesList, BorderLayout.NORTH);

		setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
	}

	public static void main(String s[]) {
		JFrame frame = new JFrame("JComboBox - Capturando evento");
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		frame.setContentPane(new JComboBoxDemo());
		frame.pack();
		frame.setVisible(true);
	}
}

Ok

Espero que ajude

T+
:wink:

H

Muito obrigado Silva, com este seu exemplo consegui fazer tudo o que eu queria perfeitamente.

Grato pela ajuda!

Criado 17 de setembro de 2007
Ultima resposta 18 de set. de 2007
Respostas 2
Participantes 2