Table Model

2 respostas
K

Olá, estou tentando desenvolver uma aplicação que recebe entradas e as coloca numa tabela. Entretando ainda estou com dúvidas de como colocar cada valor da entrada em sua coluna. Estou usando essa table model: http://www.guj.com.br/posts/list/225793.java#1156821

Por exemplo: Minha tabela tem as colunas A, B e C. Recebo uma entrada com o valor X, Y, Z. Como definir para o X ser colocado em A, Y em B e Z em C?

Eu coloquei pra criar a nova linha e adicionar a entrada na lista, mas a linha nova vem sempre vazia.

2 Respostas

Eric_Yuzo

A JTable fica sabendo o que deve ser exibido nas células chamando internamente o método "getValueAt" do TableModel.

As colunas A, B e C representam os índices 0, 1 e 2. No exemplo que está se baseando, tem um switch que está vendo qual é o índice da coluna selecionado e retorna o valor respectivo, no caso X, Y, Z. Ficaria mais ou menos assim:
@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		// Pega a linha especificada.
		SuaClasse seuObjeto = linhas.get(rowIndex);

		// Retorna o campo referente a coluna especificada.
		switch (columnIndex) {
		case 0: // Coluna A
			return seuObjeto.getX(); // X para coluna A
		case 1: // Coluna B
			return seuObjeto.getY(); // Y para coluna B
		case 2: // Coluna C
			return seuObjeto.getZ(); // Z para coluna C
		default:
			throw new IndexOutOfBoundsException("columnIndex out of bounds");
		}
	}
No caso do TableModel, ele é específico para trabalhar com uma classe (Socio, no caso do exemplo). Portanto, os valores X, Y e Z não são passados individualmente para a tabela, e sim um objeto que possuam os atributos X, Y e Z.

Implementando o método getValueAt, se preocupe apenas em passar o objeto específico para o TableModel. A chamada ao método getValueAt e a exibição dos valores na tela ficam a cargo da JTable.

K

Consegui aqui! :stuck_out_tongue:

Valeu pela ajuda

Criado 21 de dezembro de 2010
Ultima resposta 21 de dez. de 2010
Respostas 2
Participantes 2