JTable

1 resposta
L

Bom dia

Tenho os dados do banco de dados (mysql) mostrados em uma JTable . Gostaria de deixar a Jtable sensivel para eu clicar em um nome da tabela e aparecer a janela que eu inseri os dados da pessoa com esses dados , para eu atualizar.

Exemplo : Dados de uma JTable

Joao           |     20 anos     |       Sao Paulo
                   Pedro         |     10 anos      |       Rio de Janeiro
                   Maria         |     15 anos       |      Sao Paulo

Eu gostaria de clicar em um campo (nome , idade ou cidade) e aparecer em uma janela , os dados da pessoa que eu inseri … no caso de eu querer atualizar os dados dela.

Vou mandar uma parte que é o código da JTable

import javax.swing.<em>;

import java.awt.</em>;

import javax.swing.table.<em>;

import java.sql.</em>;
public class Consulta_Jtable extends JFrame

{

Consulta_Jtable(){

super(Consultar);

setBounds(300,180,200,250);
final DefaultTableModel modelo = new DefaultTableModel();

// constrói a tabela
JTable tabela = new JTable(modelo);

// Cria duas colunas
modelo.addColumn("Matricula");
modelo.addColumn("Nome");
modelo.addColumn("Endereço");
modelo.addColumn("RG");
modelo.addColumn("Modalidade");
modelo.addColumn("Pagamento");
tabela.getColumnModel().getColumn(0).setPreferredWidth(5);
tabela.getColumnModel().getColumn(1).setPreferredWidth(70);
tabela.getColumnModel().getColumn(2).setPreferredWidth(100);
tabela.getColumnModel().getColumn(3).setPreferredWidth(30);

tabela.getColumnModel().getColumn(4).setPreferredWidth(80);
tabela.getColumnModel().getColumn(5).setPreferredWidth(10);
// exibe os dados da tabela MySQL
try{
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/academia?user=root&password=admin");
       
  // procedimentos para obter os dados de uma tabela
  Statement stmt = conn.createStatement();
  String query = "SELECT * FROM alunos order by matricula";
  ResultSet rs = stmt.executeQuery(query);
  
  while(rs.next()){
    String matricula = rs.getString("matricula");  
    String nome = rs.getString("nome");
    String endereco = rs.getString("endereco");
    String rg = rs.getString("rg");

    String modalidade = rs.getString("modalidade");
    Double pagamento  = rs.getDouble("pagamento");
    modelo.addRow(new Object[]{matricula, nome, endereco, rg, modalidade, new Double(pagamento)});
  }
       
  // fim procedimento para obter os dados
  } 
  catch(SQLException ex){
       System.out.println("SQLException: " + ex.getMessage());
       System.out.println("SQLState: " + ex.getSQLState());
       System.out.println("VendorError: " + ex.getErrorCode());
  }
  catch(Exception e){
    System.out.println("Problemas ao tentar conectar com o banco de dados");    
}
// fim MySQL

tabela.setPreferredScrollableViewportSize(new Dimension(850,350));

Container c = getContentPane();
c.setLayout(new FlowLayout());
        
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
    
setSize(1000,550);
setVisible(true);

}
}

O QUE EU TERIA QUE FAZER ???

Obrigado

1 Resposta

R_chieck

Ola, use um evento do mouse.
Por ex.: MouseReleased

Criado 13 de maio de 2011
Ultima resposta 13 de mai. de 2011
Respostas 1
Participantes 2