Collections no JTable

4 respostas
I

Olá, tenho um collections map com os resultados de um Resultset, alguém tem uma idéia pra jogar ele num JTable?

4 Respostas

D

Escreva uma classe que estenda AbstractTableModel. Você terá que implementar os métodos getRowCount(), getColumnCount() e getValueAt(int row, int column).

Por Exemplo:

public class MeuModelo extends AbstractTableModel {
      private Map meuMap;

      public MeuModelo(Map amap) {
            meuMap = amap;
      }

      public int getRowCount() { // retorne o número de linhas ... }

      public int getColumnCount() { // retorne o número de colunas ... }

      public int getValueAt(int r, int c) {
            // calcule o elemento a ser obtido com base em r e c....
            // retorne o objeto da célula r, c...
            // (normalmente será um objeto String)....
      }
}

Finalmente, use o modelo...

...
      JTable table = new JTable(new MeuModelo(seuMap);
      ...
I

“dango”:

... JTable table = new JTable(new MeuModelo(seuMap); ...

No caso estou pegando o map de um return de um método que está na camada de banco de dados. Só me digam uma coisa… o collections armazena mais de um valor em alguma determinada tree do map?
Por exemplo, tenho um select que pesquisa algo que o usuário está requisitando, por exemplo um nome… mas ao retornar, ele retorna todos os clientes com esse nome, por exemplo joão… ele retorna joão da silva, joão moraes, joão meireles e etc…

Queria saber se eu armazenando esses dados atraves de um while numa tree de um map, eu conseguirei vê-los através deste codigo que você me passou?

D

Sim…

Se o seu Map for um HashMap (a implementação da interface Map que você escolher) você pode fazer assim:

Map m = new HashMap(); m.put("180001", new Cliente("Fulano", "0 11 555 5551")); m.put("180002", new Cliente("Fulano", "0 11 555 5552")); ...

Suponha que o objeto Cliente seja a sua implementação para transporte dos dados de clientes, por exemplo.

A maneira como vc vai obter os dados para exibi-los no JTable está toda concentrada no seu modelo de tabela. O método getValueAt(int r, int c) deverá retornar o objeto que deverá ser exibido na linha r e coluna c.

NOTA Tem um erro no código anterior que eu te passei. A assinatura do método getValueAt() é:

A

Ola Pessoal bom dia,

Tenho que fazer um trabalho da faculdade, tenho que criar uma classe (Aluno) onde terei (Long nome e String matricula), após terei que utilizar TreeSet para armazenas as informações. Pelo que eu entendi terei que criar um TreeSet do tipo da classe(Aluno) para que eu possa armazenar os dois valores(nome e rg ) nele, como posso fazer isso?

Obrigado.

Criado 29 de dezembro de 2003
Ultima resposta 16 de set. de 2008
Respostas 4
Participantes 3