Mudar exibição visual de dados na JTable

4 respostas
J

Pois é…Eu tenho uma JTable em que cada registro (linha) possui 3 campos (colunas). O segundo campo (coluna do meio) encapsularia uma lista de dados. Eu gostaria de apresentar essa lista de dados verticalmente. Ou seja, um elemento abaixo do outro (teria, entre outras coisas, que aumentar a altura da linha)…Vale ressaltar que essa lista teria um máximo de 11 elementos.

1-Seria a melhor solução para apresentar essa lista de dados para o usuário ou seria melhor fazer um Stringão com esses dados e jogá-la na célula, deixando o usuário se virar?
2-Como posso fazer isso?

Acho que eu poderia encapsular uma JList nesta célula da segunda coluna (embora não saiba como fazer isso ainda), mas seria a melhor solução?

4 Respostas

Ironlynx
Vc pode fazer isso com uma JList, ou um <a href="http://JComboBox.Vc">JComboBox.Vc</a> pode personalizá-lo para implementar um TableCellRenderer (para quando a célula é exibida),e extender um TableCellEditor(ou DefaultCellEditor) e  depois pode dar um:



TableColumn col = tabela.getColumnModel().getColumn(2);

col.setCellEditor(new MyListEditor(lista));

col.setCellRenderer(new MyListRenderer(lista));



onde lista é a lista de elementos do seu JList.  uma olhada na API que isso não é difícil.
Ironlynx

OBS.: foi mal agora que vi que é a segunda coluna, logo é:
tabela.getColumnModel().getColumn(1);
É sempre bom lembrar…

J

Mas você faria assim? Ou faria um Stringão e exibiria horizontalmente isso na célula?

Ironlynx
Faria assim.Só que usaria a JComboBox usando um DefaultCellEditor tipo:



class MyComboBoxEditor extends DefaultCellEditor {

public MyComboBoxEditor(String[] items) {

super(new JComboBox(items));

}

}

Com Jlist, vc tem que criar uma classe implementando TableCellEditor e definindo os métodos getCellEditorValue e getTableCellEditorComponent.É um pouquinho mais chato.Veja detalhes aqui:

<a href="http://java.sun.com/docs/books/tutorial/uiswing/components/table.html" class="onebox" target="_blank">http://java.sun.com/docs/books/tutorial/uiswing/components/table.html</a> uma olhada no código do TableRenderDemo.
Criado 22 de janeiro de 2009
Ultima resposta 23 de jan. de 2009
Respostas 4
Participantes 2