ação do jcombobox

Boa tarde, alguém poderia me ajudar.

Tenho que concluir um projeto de java, mas estou com problema para realizar a ação do jcombobox.

Queria saber se quando eu selecionar um item no combobox, tem como armazenar esse dado e após utiliza-lo na quando eu clicar em um botão, e o mesmo redirecionar para o item selecionado.

Este é o código um fiz:

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Choice;
import javax.swing.JComboBox;
import java.awt.Dimension;

public class Cons extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel lblNome = null;
private JLabel lblCpf = null;
private JTextField txNome = null;
private JTextField txCpf = null;
private JButton btPesq = null;
private JButton btCad = null;
private JButton btSair = null;
private JComboBox cboTipo = null;
/**
 * This is the default constructor
 */
public Cons() {
	super();
	initialize();
}

/**
 * This method initializes this
 * 
 * @return void
 */
private void initialize() {
	this.setSize(346, 250);
	this.setContentPane(getJContentPane());
	this.setTitle("Consulta");
}

/**
 * This method initializes jContentPane
 * 
 * @return javax.swing.JPanel
 */
private JPanel getJContentPane() {
	if (jContentPane == null) {
		lblCpf = new JLabel();
		lblCpf.setBounds(new Rectangle(13, 14, 58, 16));
		lblCpf.setText("CPF/CNPJ");
		lblNome = new JLabel();
		lblNome.setBounds(new Rectangle(15, 74, 111, 17));
		lblNome.setText("Nome/Razão Social");
		jContentPane = new JPanel();
		jContentPane.setLayout(null);
		jContentPane.add(lblNome, null);
		jContentPane.add(lblCpf, null);
		jContentPane.add(getTxNome(), null);
		jContentPane.add(getTxCpf(), null);
		jContentPane.add(getBtPesq(), null);
		jContentPane.add(getBtCad(), null);
		jContentPane.add(getBtSair(), null);
		jContentPane.add(getCboTipo(), null);
	}
	return jContentPane;
}

/**
 * This method initializes txNome	
 * 	
 * @return javax.swing.JTextField	
 */
private JTextField getTxNome() {
	if (txNome == null) {
		txNome = new JTextField();
		txNome.setBounds(new Rectangle(15, 103, 261, 19));
	}
	return txNome;
}

/**
 * This method initializes txCpf	
 * 	
 * @return javax.swing.JTextField	
 */
private JTextField getTxCpf() {
	if (txCpf == null) {
		txCpf = new JTextField();
		txCpf.setBounds(new Rectangle(15, 44, 139, 17));
	}
	return txCpf;
}

/**
 * This method initializes btPesq	
 * 	
 * @return javax.swing.JButton	
 */
private JButton getBtPesq() {
	if (btPesq == null) {
		btPesq = new JButton();
		btPesq.setBounds(new Rectangle(16, 150, 90, 17));
		btPesq.setText("Consulta");
		btPesq.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e) {
				System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
			}
		});
		
	}
	return btPesq;
}

/**
 * This method initializes btCad	
 * 	
 * @return javax.swing.JButton	
 */
private JButton getBtCad() {
	if (btCad == null) {
		btCad = new JButton();
		btCad.setBounds(new Rectangle(119, 149, 95, 18));
		btCad.setText("Cadastrar");
		btCad.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent e){
				new Clin().setVisible(true);
			}
		});
	}
	return btCad;
}

/**
 * This method initializes btSair	
 * 	
 * @return javax.swing.JButton	
 */
private JButton getBtSair() {
	if (btSair == null) {
		btSair = new JButton();
		btSair.setBounds(new Rectangle(225, 149, 90, 18));
		btSair.setText("Sair");
		btSair.addMouseListener(new java.awt.event.MouseAdapter(){
			public void mouseClicked(java.awt.event.MouseEvent e){
				System.exit(0);
			}
			});
	
	}
	return btSair;
}

/**
 * This method initializes cboTipo	
 * 	
 * @return javax.swing.JComboBox	
 */
private JComboBox getCboTipo() {
	if (cboTipo == null) {
		String opcoes[] = {" ","Pessoa Física", "Pessoa Jurídica"};
		cboTipo = new JComboBox(opcoes);
		cboTipo.setBounds(new Rectangle(200, 44, 100, 17));
		cboTipo.setBackground(Color.white);
		cboTipo.setVisible(true);
	}
	return cboTipo;
}

} // @jve:decl-index=0:visual-constraint=“10,10”

Me desculpe, sou novo na linguagem.

Poderia me explicar, monstrando como faço para implementar este código.

Eu queria, era que quando eu seleciona-se um item no combobox e clica-se no botão cadastrar, apartir desta seleção, ele pudesse abrir o Frame correspondente ao item.

aguardo a resposta e mais uma vez peço desculpas.

Saudações.

Tá difícil de me convencer que foi tu mesmo que fez esse código… Tá parecendo mais um editor gráfico de “janelinhas” 8) 8) 8)

Pelo que eu entendi você quer armazenar o valor do combo box escolhido pelo usuario e usá-lo em outro momento na aplicação - no caso, quer que o combo box mostre esse item quando o usuario apertar um tal botão.

Bem, vamos ver. A primeira coisa que tu tem que pensar é em onde armazenar a escolha do usuário, porque ela aparecerá em pelomenos dois locais:

[list] no método itemStateChanged(ItemEvent e) -> ele será gerado [/list]
[list] no método actionPerformed(ActionEvent e2) -> aqui ele será usado [/list]

Se você não está familiarizado com nenhum desses métodos, sugiro que estude um pouco mais de Swing e estude sobre a geração e tratamento de Eventos ( e que deixe de usar editores gráficos de “janelinhas”, eles te deixam alienado e te tiram a liberdade ).

Mas, de antemão, te digo que para dar interatividade ao botão você precisará de um objeto que possa “ouvir” quando alguém clicar nele. Do mesmo jeito, precisará de algum objeto que “ouça” quando alguém escolher algum item de uma combo box. Objetos assim são conhecidos como Listeners. Eles vêm de classes construídas pelo desenvolvedor (você) que implementam alguma interface listener. O listener necessário para ouvir cliques em botões é o ActionListener, e o que cuida dos jcombobox é o ItemListener. No caso, você deve fazer uma classe que implementa esses “listeneres” e declarar nela os métodos listados acima.

Se você não está familiarizado com Listeners e Eventos, nem pense em fazer seus botões reagirem a cliques! Isto é, pensar pode, mas faria muito melhor estudando tratamento de eventos ou coisas do tipo, primeiro. Nos livros isso é aborado logo em seguida às interfaces gráficas (Swing, awt, etc).

Mas, se você sabe do que eu estou falando, continue a ler.
Minha sugestão é um pouco gambiarrísitca: uma variável global da janela onde está o combo box (e, obviamente, um método “get” para acessá-lo).
O tipo dessa variável global pode ser um int, que conterá o índice do item escolhido no jcombobox; ou pode ser String, com o nome do item que aparece na tela.
Nesse caso, a classe JComboBox tem métodos que retornam ambas as coisas. getSelectedIndex() para o int e getSelectedItem() para a String. Veja a documentação da API para mais detalhes (veja mesmo! ) .

Assim, no método itemStateChanged você faz:
int indice = objetoDeJComboBox.getSelectedIndex();

E no método actionPerformed() você faz:
objetoDeJComboBox.setSelectedIndex(indice);

O mesmo ocorre analogamente para a String, mas em vez de Index você põe Item.

Espero ter sido de ajuda.

P.S.: Se o que você quer é criar uma janela estilo formulário (campos para preencher), para fazê-la reaparecer com o que o usuário tinha digitado antes de fechá-la, a melhor solução é criar uma classe cujo objeto guarde tudo o que o usuario digitou - o valor de cada TextField e o indice/item de cada jcomboBox. Depois você pode usar os dados desse objeto para prencher os campos da janela quando ela for exibida.