Gostaria de saber como posso passar os dados de um jtable (carregados pelo banco de dados) para um campo de texto, ao clicar em um item da Tabela.Uso o Netbeans.
Conseguir fazer a classe para listar
package dao;
import classes.Agenda;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class AgendaDao {
public ArrayList<Agenda> listaAgenda() {
ArrayList<Agenda> lista = new ArrayList<Agenda>();
try {
Connection con = Conecta.getConexao();
Statement stmt = con.createStatement();
String sql = "SELECT * FROM agenda ORDER BY nome";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
Agenda agenda = new Agenda();
agenda.setNome(rs.getString("nome"));
agenda.setTelefone(rs.getString("telefone"));
lista.add(agenda);
}
rs.close();
stmt.close();
con.close();
}
catch(Exception e) {
System.out.println("ERRO: " + e.toString());
}
return lista;
}
}
classe principal (Jform)
package view;
import dao.AgendaDao;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
public class Agenda extends javax.swing.JFrame {
public Agenda() {
initComponents();
iniciarBancoDeDados();
}
private void iniciarBancoDeDados(){
DefaultTableModel modelo = (DefaultTableModel) tblGrade.getModel();
ArrayList<classes.Agenda> lista = new AgendaDao().listaAgenda();
for (int i = 0; i < lista.size(); i++) {
modelo.addRow(new String[]{lista.get(i).getNome(), lista.get(i).getTelefone()});
}
}
private void initComponents() {
txtNome = new javax.swing.JTextField();
txtTelefone = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblGrade = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
getContentPane().add(txtNome);
txtNome.setBounds(140, 260, 200, 30);
getContentPane().add(txtTelefone);
txtTelefone.setBounds(140, 320, 200, 30);
jButton1.setText("Incluir");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(110, 370, 61, 23);
jButton2.setText("Excluir");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2);
jButton2.setBounds(200, 370, 73, 23);
jButton3.setText("Alterar");
getContentPane().add(jButton3);
jButton3.setBounds(290, 370, 65, 23);
tblGrade.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Nome", "Telefone"
}
));
jScrollPane1.setViewportView(tblGrade);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(10, 10, 452, 220);
jLabel1.setText("Nome");
getContentPane().add(jLabel1);
jLabel1.setBounds(140, 240, 160, 14);
jLabel2.setText("Telefone");
getContentPane().add(jLabel2);
jLabel2.setBounds(140, 300, 190, 14);
setSize(new java.awt.Dimension(498, 469));
setLocationRelativeTo(null);
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel modelo = (DefaultTableModel) tblGrade.getModel();
modelo.addRow(new String[]{txtNome.getText(), txtTelefone.getText()});
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Agenda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Agenda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Agenda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Agenda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Agenda().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblGrade;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtTelefone;
// End of variables declaration
}
Depois de selecionar na tabela, deve mostrar nos dois campos de texto e ao clicar em um botão deve excluir do banco de dados