fiz dessa forma … porém precisou do toString no final da mesma forma… pois ele espera um tipo String e vem um date…
o engraçado que com o tostring… nao da nenhum problema … simplesmente não seleciona a data
Segue todo o codigo da minha interface
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
/*
- jTAgendaContatos.java
-
- Created on 03/11/2009, 16:41:23
*/
package caio.forms;
import caio.dao.ContatoDao;
import caio.logica.Contato;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;
/**
*
-
@author Administrador
*/
public class jTAgendaContatos extends javax.swing.JFrame {
DefaultTableModel tmContato = new DefaultTableModel(null, new String[]{“id”, “nome”, “endereco”, “telefone”});
List contatos;
ListSelectionModel lsmContato;
List c1;
public static DefaultFormatterFactory setFormatoData()
{
MaskFormatter comFoco = null;
try
{
comFoco = new MaskFormatter("##/##/####");
}
catch (Exception pe) { }
DefaultFormatterFactory factory = new DefaultFormatterFactory(comFoco, comFoco);
return factory;
}
public static java.sql.Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;
java.sql.Date date = null;
try {
DateFormat formatter = new SimpleDateFormat(“dd/MM/yyyy”);
date = new java.sql.Date( ((java.util.Date)formatter.parse(data)).getTime() );
} catch (ParseException e) {
throw e;
}
return date;
}
/** Creates new form jTAgendaContatos */
public jTAgendaContatos() {
initComponents();
desabilitaDados();
limparDados();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLId = new javax.swing.JLabel();
jLNome = new javax.swing.JLabel();
jLEndereco = new javax.swing.JLabel();
jLTelefone = new javax.swing.JLabel();
jLEmail = new javax.swing.JLabel();
jLSexo = new javax.swing.JLabel();
jTId = new javax.swing.JTextField();
jTNome = new javax.swing.JTextField();
jTEndereco = new javax.swing.JTextField();
jTEmail = new javax.swing.JTextField();
jBNovo = new javax.swing.JButton();
jBAlterar = new javax.swing.JButton();
jBExcluir = new javax.swing.JButton();
jBSalvar = new javax.swing.JButton();
jBSair = new javax.swing.JButton();
jCSexo = new javax.swing.JComboBox();
jTData = new javax.swing.JFormattedTextField();
jLNascimento = new javax.swing.JLabel();
jTTelefone = new javax.swing.JTextField();
jBPesquisa = new javax.swing.JButton();
jTPesquisa = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTContato = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro de Contatos"));
jLId.setText("ID:");
jLNome.setText("NOME:");
jLEndereco.setText("ENDEREÇO:");
jLTelefone.setText("TELEFONE:");
jLEmail.setText("EMAIL:");
jLSexo.setText("SEXO");
jBNovo.setText("Novo");
jBNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBNovoActionPerformed(evt);
}
});
jBAlterar.setText("Alterar");
jBAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBAlterarActionPerformed(evt);
}
});
jBExcluir.setText("Excluir");
jBExcluir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBExcluirActionPerformed(evt);
}
});
jBSalvar.setText("Salvar");
jBSalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBSalvarActionPerformed(evt);
}
});
jBSair.setText("Sair");
jBSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBSairActionPerformed(evt);
}
});
jCSexo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "M", "F" }));
jTData.setFormatterFactory(setFormatoData());
jLNascimento.setText("NASCIMENTO:");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLId)
.addComponent(jLNome)
.addComponent(jLEndereco)
.addComponent(jLNascimento))
.addGap(30, 30, 30)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 35, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLTelefone)
.addComponent(jLSexo)
.addComponent(jLEmail))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jCSexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(184, 184, 184))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(13, 13, 13)
.addComponent(jBNovo)
.addGap(18, 18, 18)
.addComponent(jBAlterar)
.addGap(18, 18, 18)
.addComponent(jBExcluir)
.addGap(18, 18, 18)
.addComponent(jBSalvar)
.addGap(18, 18, 18)
.addComponent(jBSair)
.addContainerGap(233, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())))
);
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTEndereco, jTNome});
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jBAlterar, jBExcluir, jBNovo, jBSair, jBSalvar});
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLId)
.addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLNome)
.addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLEndereco)
.addComponent(jTEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLTelefone)
.addComponent(jTTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(10, 10, 10)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLEmail))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jCSexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLSexo))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLNascimento))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jBNovo)
.addComponent(jBAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBExcluir, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBSair, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21, 21, 21))
);
jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jBAlterar, jBExcluir, jBNovo, jBSair, jBSalvar});
jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jCSexo, jTEmail, jTEndereco, jTId, jTNome});
jBPesquisa.setText("Pesquisar");
jBPesquisa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBPesquisaActionPerformed(evt);
}
});
jTContato.setModel(tmContato);
jTContato.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmContato = jTContato.getSelectionModel();
lsmContato.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if (! e.getValueIsAdjusting()){
jTContatoLinhaSelecionada(jTContato);
}
}
}
);
jScrollPane1.setViewportView(jTContato);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTPesquisa, javax.swing.GroupLayout.DEFAULT_SIZE, 676, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jBPesquisa))
.addGroup(layout.createSequentialGroup()
.addGap(91, 91, 91)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 601, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBPesquisa))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 24, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(42, 42, 42))
);
pack();
}// </editor-fold>
private void jBNovoActionPerformed(java.awt.event.ActionEvent evt) {
habilitaDados();
limparDados();
// TODO add your handling code here:
}
private void jTContatoLinhaSelecionada(JTable jT){
if(jT.getSelectedRow() != -1){
jTId.setText(c1.get(jT.getSelectedRow()).getId().toString());
jTNome.setText(c1.get(jT.getSelectedRow()).getNome());
jTEndereco.setText(c1.get(jT.getSelectedRow()).getEndereco());
jTTelefone.setText(c1.get(jT.getSelectedRow()).getTel());
jTEmail.setText(c1.get(jT.getSelectedRow()).getEmail());
jCSexo.setSelectedItem(c1.get(jT.getSelectedRow()).getSexo());
jTData.setText(c1.get(jT.getSelectedRow()).getData().toString());
}
}
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (verificaDados()) {
try {
salvar();
} catch (Exception ex) {
Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE, null, ex);
}
}
desabilitaDados();
}
private void listaContatos() throws SQLException {
ContatoDao dao = new ContatoDao();
c1 = dao.listaContatos("%" + jTPesquisa.getText().trim() + "%");
mostraContatos(c1);
}
private void mostraContatos(List<Contato> c1) {
while (tmContato.getRowCount() > 0) {
tmContato.removeRow(0);
}
if (c1.size() == 0) {
JOptionPane.showMessageDialog(this, "Nenhum contato encontrado!!!");
desabilitaDados();
} else {habilitaDados();
String[] campos = new String[]{null, null, null, null};
for (int i = 0; i < c1.size(); i++) {
tmContato.addRow(campos);
tmContato.setValueAt(c1.get(i).getId(), i, 0);
tmContato.setValueAt(c1.get(i).getNome(), i, 1);
tmContato.setValueAt(c1.get(i).getEndereco(), i, 2);
tmContato.setValueAt(c1.get(i).getTel(), i, 3);
}
}
}
private void jBPesquisaActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:
listaContatos();
desabilitaDados();
} catch (SQLException ex) {
Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jBExcluirActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:
excluir();
JOptionPane.showMessageDialog(null, "Contato excluído com sucesso!!");
listaContatos();
desabilitaDados();
limparDados();
} catch (SQLException ex) {
Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!");
}
}
private void jBSairActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); // TODO add your handling code here:
}
private void jBAlterarActionPerformed(java.awt.event.ActionEvent evt) {
habilitaDados();
// TODO add your handling code here:
// TODO add your handling code here:
}
public void excluir() throws SQLException{
Contato c1 = new Contato();
c1.setId(Long.valueOf(jTId.getText()));
ContatoDao dao = new ContatoDao();
dao.remove(c1);
}
public void salvar() throws SQLException, Exception {
Contato c1 = new Contato();
ContatoDao dao = new ContatoDao();
if(jTId.getText().equals("")){
try {
c1.setNome(jTNome.getText().toUpperCase());
c1.setEndereco(jTEndereco.getText().toUpperCase());
c1.setTel(jTTelefone.getText().toUpperCase());
c1.setEmail(jTEmail.getText().toUpperCase());
c1.setSexo(jCSexo.getSelectedItem().toString());
c1.setData(formataData(jTData.getText()));
dao.adiciona(c1); // TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!!!");
limparDados();
} catch (SQLException ex) {
Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!!");
}
//insert
} else {
{
c1.setId(Long.valueOf(jTId.getText()));
c1.setNome(jTNome.getText().toUpperCase());
c1.setEndereco(jTEndereco.getText().toUpperCase());
c1.setTel(jTTelefone.getText().toUpperCase());
c1.setEmail(jTEmail.getText().toUpperCase());
c1.setSexo(jCSexo.getSelectedItem().toString());
c1.setData(formataData(jTData.getText()));
dao.altera(c1);
JOptionPane.showMessageDialog(null, "Contato alterado com sucesso!!!");
limparDados();
}
//update
}
}
public boolean verificaDados() {
if (!jTNome.getText().equals("") && !jTEndereco.getText().equals("")) {
return true;
} else {
JOptionPane.showMessageDialog(null, "Verifique se os campos obrigatórios foram preenchidos!!!");
}
return false;
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new jTAgendaContatos().setVisible(true);
}
});
}
public void desabilitaDados() {
jTId.setEditable(false);
jTNome.setEditable(false);
jTEndereco.setEditable(false);
jTTelefone.setEditable(false);
jTEmail.setEditable(false);
jCSexo.setEditable(false);
jTData.setEditable(false);
}
public void habilitaDados() {
jTId.setEditable(false);
jTNome.setEditable(true);
jTEndereco.setEditable(true);
jTTelefone.setEditable(true);
jTEmail.setEditable(true);
jCSexo.setEditable(false);
jTData.setEditable(true);
}
public void limparDados(){
jTId.setText("");
jTNome.setText("");
jTEndereco.setText("");
jTTelefone.setText("");
jTEmail.setText("");
jCSexo.setSelectedItem(null);
jTData.setText("");
}
// Variables declaration - do not modify
private javax.swing.JButton jBAlterar;
private javax.swing.JButton jBExcluir;
private javax.swing.JButton jBNovo;
private javax.swing.JButton jBPesquisa;
private javax.swing.JButton jBSair;
private javax.swing.JButton jBSalvar;
private javax.swing.JComboBox jCSexo;
private javax.swing.JLabel jLEmail;
private javax.swing.JLabel jLEndereco;
private javax.swing.JLabel jLId;
private javax.swing.JLabel jLNascimento;
private javax.swing.JLabel jLNome;
private javax.swing.JLabel jLSexo;
private javax.swing.JLabel jLTelefone;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTContato;
private javax.swing.JFormattedTextField jTData;
private javax.swing.JTextField jTEmail;
private javax.swing.JTextField jTEndereco;
private javax.swing.JTextField jTId;
private javax.swing.JTextField jTNome;
private javax.swing.JTextField jTPesquisa;
private javax.swing.JTextField jTTelefone;
// End of variables declaration
}
[/code]