Evento editar celula na jtable

5 respostas
C

Tenho uma jtable, onde na primeira coluna tem um jcombobox, gostaria de quando selecionar um determinado dado do combobox, que só a terceira coluna da jtable ficasse editada, sem mudar o model que ela ja possui.

5 Respostas

M

isso é uma coisa a ser muito bem estudada,
com gambiarras seria facil fazer,
mas para fazer uma coisa descente creito que daria
para fazer através de um cellEditor da tabela…

C

Alguém possui algum exemplo disto ou coisa parecida???

M

Take a look:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;

public class Teste extends JFrame{
  public Teste (){
    super("Exemplo de uma tabela simples");
		
    // colunas da tabela
    String[] colunas = {"Cidade", "Estado", "Habitantes"};
		
    // conteúdo da tabela	
    Object[][] conteudo = {
        {"Goiânia", "GO", "43.023.432"},
        {"São Paulo", "SP", "5.343.234"},
        {"Rio de Janeiro", "RJ", "6.434.212"},
        {"Jussara", "GO", "87.454"},
        {"Barra do Garças", "MT", "64.344"}
    };
        
    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas){
    	public boolean isCellEditable(int rowIndex, int vColIndex) {
            return false;
        }
    };
    
    
    tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
	
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
			
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
    	
    setSize(400, 300);
    setVisible(true);
  }
	
  public static void main(String args[]){
    Teste app = new Teste();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
C

Obrigada Matheus, mas ja tenho minha jTable feita, só queria saber como poderia editar uma celula apenas qd fosse selecionado determinado item em jcombobox! Alguém sabe?? Esta célula começa desabilitada.

M

Você sabe verificar o index ou qual posição você selecionou no combo?

Pois para a tabela, poderia ser utilizado o método setCellSelectionEnabled();

Criado 22 de dezembro de 2008
Ultima resposta 29 de dez. de 2008
Respostas 5
Participantes 3