jTable, metodos para pegar linha que foi editada?

4 respostas
fsfnit

Feliz 2008 pessoal,
Bom, to populando um jTable com dados vindos do meu BD.
Só que queria preferencialmente, que ao usuário clicar numa linha do grid, abrisse uma tela de pop-up, trazendo o objeto do banco em questão, para editar, mas ja fucei os metodos do jTable mas nao consigo nada que me avise qdo uma linha foi selecionada.
Alguem tem alguma idéia?

4 Respostas

ViniGodoy

Tente usar o método:

fsfnit

Coloquei isso, mas não aceita, fala que não ser usado na minha tela (gui.TelaMain).

jTable1.getModel().addTableModelListener(this);

Eu estou usando o NetBeans, pois não saco nada de APP´s gráficas , e to levando uma surra com isso.
Caso isso funcionasse, como eu capturaria o evento?

ViniGodoy

Sua tela teria que implementar ListSelectionListener para que isso fosse possível.

Tente fazer:

jTable1.getModel().addTableModelListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { //Use trate o evento aqui. } } );

fsfnit

Me vem que não pode ser aplicado.
Vo colar minha classe aqui, pois talvez ajude. As coisas ficam meia confusa pois o netbeans gera mto código, e não permite alterar de forma explicíta, e eu que estou usando o netbeans somente por causa da facilidade de se construir telas, acaba sendo um tyiro no pé.
Se alguem tiver alguma ideia agradeço, pois ja esgotei as pesquisas no google que me desse alguma pista.
Vlw galera.

public class TelaMain extends JFrame implements ActionListener,ListSelectionListener {
    
    /** Creates new form TelaMain */
    public TelaMain() {
        super("SisNav");
        initComponents();
        jTextField1.addActionListener(this);//Nome
        jTextField2.addActionListener(this);
        jTextField3.addActionListener(this);
        jTextField4.addActionListener(this);
        jTextField5.addActionListener(this);
        jTextField6.addActionListener(this);
        jTextField7.addActionListener(this);
        jTextField8.addActionListener(this);
        jButton1.addActionListener(this);
        jButton2.addActionListener(this);
        jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
    =======>>>>>>    jTable1.getModel().addTableModelListener(this);          //me da um erro falando que não pode ser aplicado, mas pq ????
        
        
    }
    
    
    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        TableModel model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object data = model.getValueAt(row, column);
        System.out.println("Nome da Coluna :"+ columnName);
    }

  ...

Ou se coloco este metodo logo após o construtor TelaMain():

jTable1.getModel().addTableModelListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { //Use trate o evento aqui. System.out.println("heloo"); } } );

Fica reclamando pedindo um identificador.
Alguma susgestão???

Criado 2 de janeiro de 2008
Ultima resposta 2 de jan. de 2008
Respostas 4
Participantes 2