OPa,
Estou tendo problemas com retorno do JDialog...
Tenho uma classe para a tela e uma outra classe controle para essa mesma tela...
package View;
import java.awt.Font;
public class RetornaCliente extends JDialog
{
public JTextField txNome;
public JTextField txCodigo;
public JTextField txCpf;
public JTextField txCnpj;
public ResourceBundle bn = null;
public JButton btnBuscar;
public JRadioButton rbCpf;
public JRadioButton rbCnpj;
public JRadioButton rbCodigo;
public JRadioButton rbNome;
public JScrollPane spConsultaCli;
public JTable tbConsulta;
public DefaultTableModel modelo = new DefaultTableModel();
public JButton btnSelecionar;
public RetornaCliente(ResourceBundle idioma)
{
this.setModal(true);
this.setVisible(true);
this.setSize(534, 475);
bn = idioma;
getContentPane().setLayout(null);
//***Definindo Rotulos***
JLabel lblConsultarCliente = new JLabel(bn.getString("TelaConsultarCliente1.Label.ConsultarCliente"));
lblConsultarCliente.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblConsultarCliente.setBounds(10, 11, 140, 14);
getContentPane().add(lblConsultarCliente);
JLabel lblConsultaPor = new JLabel(bn.getString("TelaConsultarCliente1.Label.Consultarpor"));
lblConsultaPor.setBounds(26, 68, 100, 14);
getContentPane().add(lblConsultaPor);
//***Fim dos Rotulos***
//Definindo Grupo RadioButton
ButtonGroup busca = new ButtonGroup();
//***Definindo RadioButtons***
rbNome = new JRadioButton(bn.getString("TelaConsultarCliente1.RadioButton.Nome"));
rbNome.setBounds(26, 100, 65, 23);
rbNome.setSelected(true);
getContentPane().add(rbNome);
busca.add(rbNome);
rbCodigo = new JRadioButton(bn.getString("TelaConsultarCliente1.RadioButton.Codigo"));
rbCodigo.setBounds(26, 126, 70, 23);
getContentPane().add(rbCodigo);
busca.add(rbCodigo);
rbCpf = new JRadioButton(bn.getString("TelaConsultarCliente1.RadioButton.CPF"));
rbCpf.setBounds(26, 152, 65, 23);
getContentPane().add(rbCpf);
busca.add(rbCpf);
rbCnpj = new JRadioButton(bn.getString("TelaConsultarCliente1.RadioButton.CNPJ"));
rbCnpj.setBounds(26, 183, 65, 23);
getContentPane().add(rbCnpj);
busca.add(rbCnpj);
//***Fim dos RadioButtons***
//***Definindo TextFields***
txNome = new JTextField();
txNome.setBounds(116, 101, 230, 20);
txNome.setEnabled(false);
getContentPane().add(txNome);
txNome.setColumns(10);
txCodigo = new JTextField();
txCodigo.setBounds(116, 127, 230, 20);
getContentPane().add(txCodigo);
txCodigo.setEnabled(false);
txCodigo.setColumns(10);
txCpf = new JTextField();
txCpf.setBounds(116, 158, 230, 20);
getContentPane().add(txCpf);
txCpf.setEnabled(false);
txCpf.setColumns(10);
txCnpj = new JTextField();
txCnpj.setBounds(116, 184, 230, 20);
getContentPane().add(txCnpj);
txCnpj.setEnabled(false);
txCnpj.setColumns(10);
btnBuscar = new JButton(bn.getString("TelaConsultarCliente1.Button.Buscar"));
btnBuscar.setBounds(116, 210, 140, 23);
getContentPane().add(btnBuscar);
spConsultaCli = new JScrollPane();
spConsultaCli.setBounds(26, 246, 457, 133);
getContentPane().add(spConsultaCli);
btnSelecionar = new JButton("Selecionar");
btnSelecionar.setBounds(184, 390, 140, 23);
getContentPane().add(btnSelecionar);
btnSelecionar.setVisible(true);
criaTabela();
}
public void criaTabela(){
tbConsulta = new JTable(modelo);
modelo.addColumn("Codigo");
modelo.addColumn("Nome");
modelo.addColumn("CPF");
modelo.addColumn("Telefone");
tbConsulta.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tbConsulta.getColumnModel().getColumn(0).setPreferredWidth(5);
tbConsulta.getColumnModel().getColumn(1).setPreferredWidth(50);
tbConsulta.getColumnModel().getColumn(2).setPreferredWidth(15);
tbConsulta.getColumnModel().getColumn(3).setPreferredWidth(15);
spConsultaCli.setViewportView(tbConsulta);
}
public void adicionaListener(final ActionListener listen)
{
this.btnBuscar.addActionListener(listen);
this.btnSelecionar.addActionListener(listen);
this.rbCpf.addActionListener(listen);
this.rbCnpj.addActionListener(listen);
this.rbCodigo.addActionListener(listen);
this.rbNome.addActionListener(listen);
}
}
Classe Controle
package Controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javax.swing.JOptionPane;
import DAO.ClientePFDAO;
import Modelo.ClientePF;
import View.RetornaCliente;
public class ControleRetornaCliente {
public RetornaCliente gui;
String id, nome, cpf, telefone;
public ClientePF clienteSelecionado = null;
public ControleRetornaCliente(ResourceBundle bn)
{
gui = new RetornaCliente(bn);
gui.adicionaListener(new Listener());
}
public ClientePF getClienteSelecionado() {
return clienteSelecionado;
}
public void coletaDados(ClientePF cliente)
{
id = "" + cliente.getCodigo();
nome = cliente.getNome();
cpf = cliente.getCpf();
telefone = cliente.getTelefoneRes();
}
class Listener implements ActionListener{
List<ClientePF> clientes = new ArrayList<ClientePF>(); //Instancia um arraylist para ser preenchido com resultados
public void actionPerformed(ActionEvent ev)
{
String tipoBusca = "";
//Define o tipo de busca por nome
if(gui.rbNome.isSelected())
{
gui.txNome.setEnabled(true);
gui.txCpf.setEnabled(false);
gui.txCnpj.setEnabled(false);
gui.txCodigo.setEnabled(false);
gui.txCpf.setText("");
gui.txCnpj.setText("");
gui.txCodigo.setText("");
tipoBusca = "nome";
}
//Define o tipo de busca por código
if(gui.rbCodigo.isSelected())
{
gui.txNome.setEnabled(false);
gui.txCpf.setEnabled(false);
gui.txCnpj.setEnabled(false);
gui.txCodigo.setEnabled(true);
gui.txNome.setText("");
gui.txCpf.setText("");
gui.txCnpj.setText("");
tipoBusca = "codigo";
}
//Define o tipo de busca por cpf
if(gui.rbCpf.isSelected())
{
gui.txNome.setEnabled(false);
gui.txCpf.setEnabled(true);
gui.txCnpj.setEnabled(false);
gui.txCodigo.setEnabled(false);
gui.txNome.setText("");
gui.txCnpj.setText("");
gui.txCodigo.setText("");
tipoBusca = "cpf";
}
//Define o tipo de busca por cnpj
if(gui.rbCnpj.isSelected())
{
gui.txNome.setEnabled(false);
gui.txCpf.setEnabled(false);
gui.txCnpj.setEnabled(true);
gui.txCodigo.setEnabled(false);
gui.txNome.setText("");
gui.txCpf.setText("");
gui.txCodigo.setText("");
tipoBusca = "cnpj";
}
//Implementa ação do botão buscar
if(ev.getSource() == gui.btnBuscar)
{
//Define o critério da busca
String dado = ""+ gui.txCnpj.getText() + gui.txNome.getText() + gui.txCpf.getText() + gui.txCodigo.getText();
gui.modelo.setNumRows(0);
ClientePFDAO cliDAO = new ClientePFDAO(); //Instancia classe DAO para manipulação de banco
try {
//Retorna um cliente da consulta de acordo com o critério e tipo de busca
clientes = cliDAO.consultarCliente(dado, tipoBusca);
} catch (SQLException e) {
e.printStackTrace();
}
//Checa se a busca deu resultado
if(clientes.size() != 0)
{
for (int i = 0; i <= clientes.size() - 1; i++)
{
coletaDados(clientes.get(i));
gui.modelo.addRow(new String [] {id, nome, cpf, telefone});
}
}
else
//Caso negativo, apresenta tela de erro
JOptionPane.showMessageDialog(null, "cliente não cadastrado");
}
if(ev.getSource()== gui.btnSelecionar)
{
//Seta o obj clienteSelecionado com o obj selecionado na tabela
int linha = gui.tbConsulta.getSelectedRow();
clienteSelecionado = clientes.get(linha);
gui.setVisible(false);
}
}
}
}
Eu estou chamando essa outra janela em um botão dentro de uma outra classe... o código do botão é esse abaixo!
if(ev.getSource() == gui.btnSelecionarCliente)
{
ControleRetornaCliente cl = new ControleRetornaCliente(gui.bn);
clienteLocacao = cl.getClienteSelecionado();
gui.txNomeCli.setText(clienteLocacao.getNome()); //Seta o campo nome com o nome do cliente
gui.txCodigoCli.setText(clienteLocacao.getCodigo()); //Seta o campo código com o código do cliente
}
clienteLocacao = cl.getClienteSelecionado();
cl.SetModal(true);
public RetornaCliente(ResourceBundle idioma)
{
this.setModal(true);
this.setVisible(true);
this.setSize(534, 475);
Abre uma janela nda a ver, com componente nenhum...
E se eu ponho no construtor da classe Controle:public ControleRetornaCliente(ResourceBundle bn)
{
gui = new RetornaCliente(bn);
gui.setModal(true);
gui.setModal(true);
gui.adicionaListener(new Listener());
Tbm da erro Null...
Alguém tem alguma idéia do q pode ser?