JTable DefaultTableModel... Perguntinhas

Galera…

Tenho uma JTable à qual agreguei o DefaultTableModel, porque é só ele que sei usar… Tentei criar o meu próprio modelo mas deu uns problemas e não consegui… Enfim, uso o DefaultTableModel, e preciso determinar o tamanho de cada coluna, preciso saber como fazer para quando o usuário clicar duas vezes sobre uma linha da JTable os valores das celulas daquela linha sejam copiados e lançados à JTextField’s…
Lembre-se, não quero usar AbstractTableModel e talz, preciso saber como fazer isso com DefaultTableModel…
Se alguém conseguir fazer isso e puder me dizer, ficarei intensamente grato!

Valeu!

Vamos separar as coisas.

O Model contém os dados de sua tabela.
O TableColumnModel é um modelo que descreve as colunas para sua tabela.

O JTable possui as informações de desenho da sua tabela, e também captura a interação do usuário com a tabela.

Então, você não vai conseguir obter o tamanho das colunas nem no Abstract e nem no DefaultTableModel.

Eu acho que você realmente deveria voltar a estudar o AbstractTableModel e deixar de lado o Default. É um investimento que realmente vale a pena.

Mas, respondendo as suas perguntas. Para saber o tamanho das colunas, você deve perguntar ao JTable:

table.getColumn("UserName").getWidth();

Esse nome “UserName” é o identifier de sua coluna. Você pode defini-lo quando cria as colunas da tabela na mão.

JTable umaTabela = new JTable(new MeuModel()); umaTabela.setAutoCreateColumnsFromModel(false); TableColumn coluna = new TableColumn(); coluna.setIdentified("UserName"); coluna.setModelIndex(0); //Índice da coluna no model coluna.setPreferedWidth(200); //Tamanho desejado para a coluna umaTabela.addColumn(coluna);

Para saber se a tabela foi clicada 2 vezes, adicione um listener a tabela:

umaTabela.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent evt) { if (evt.getClickCount() == 2) { int row = umaTabela.getSelectedRow(); //Seu método aqui } }

table.getColumn("UserName").getWidth();

JTable umaTabela = new JTable(new MeuModel()); umaTabela.setAutoCreateColumnsFromModel(false); TableColumn coluna = new TableColumn(); coluna.setIdentified("UserName"); coluna.setModelIndex(0); //Índice da coluna no model coluna.setPreferedWidth(200); //Tamanho desejado para a coluna umaTabela.addColumn(coluna);

umaTabela.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent evt) { if (evt.getClickCount() == 2) { int row = umaTabela.getSelectedRow(); //Seu método aqui } }[/quote]

Valeu, brother!