Towel ObjectTableModel - Vincular dois campos em uma única coluna

3 respostas
Eric_Yuzo

Estou utilizando o ObjectTableModel do projeto Towel do Mark e gostaria de saber se há alguma implementação que permita vincular dois campos em uma única coluna da JTable.

A ideia é vincular, por exemplo, o campo "subtitulo" ao campo "titulo" de uma classe Livro. A saída esperada na JTable seria "título: subtítulo".

Na minha implementação de table model eu estava obtendo desta forma:
public Object getValueAt(int rowIndex, int columnIndex) {
		Livro livro = data.get(rowIndex); // Recupera o livro da linha

		switch (columnIndex) {
		case 0: return livro.getTitulo() + ": " + livro.getSubtitulo();
		// Restante das colunas . . .
Se não tiver nada já implementado, teriam ideia da melhor forma de se fazer isto? Estava pensando em implementar um FieldAccessHandler, mas não sei se seria a melhor opção.

Valeu...

3 Respostas

Marky.Vasconcelos

Voce tem duas opções:
Primeiro, colocar esses dois campos em um Objeto que represente um titulo, sobreescrever o método toString e retornar nele o titulo + subtitulo. Depois no seu objeto livro ter um objeto desses invés das duas Strings, quando passar esse campo como objeto vai ser exibido o toString.

Segundo, implementar um FieldAcessHandler também resolve, mas criar o método de alteração que altere os dois campos vai ser complicado.

Marky.Vasconcelos

PS: Se voce implementar a segunda opção, não esqueça de enviar o novo AcessHandler para colocar no projeto tá? :wink:

Eric_Yuzo

Valeu Mark.

Estou afim de implementar a segunda opção. Vou matutar um pouco e se conseguir implementar um AcessHandler, eu mando sim. Caso contrário, crio o objeto mesmo.

Valeu…

Criado 14 de janeiro de 2011
Ultima resposta 17 de jan. de 2011
Respostas 3
Participantes 2