Como criar uma tabela simples em Java para uso em uma GUI

Usando matrizes para armazenar os dados da tabela

Uma maneira simples de fornecer dados para o

classe é usar duas matrizes. O primeiro contém os nomes das colunas em um

matriz:

A segunda matriz é uma matriz de objetos bidimensional que mantém os dados da tabela. Essa matriz, por exemplo, inclui seis nadadores olímpicos:

A chave aqui é garantir que as duas matrizes tenham o mesmo número de colunas.

Construindo a JTable

Depois de ter os dados no lugar, é uma tarefa simples criar a tabela. Basta ligar para o

JTable
construtor e passe as duas matrizes: você provavelmente desejará adicionar barras de rolagem para garantir que o usuário possa ver todos os dados. Para fazer isso, coloque o.
JTable
dentro de
JScrollPane
: Agora, quando a tabela for exibida, você verá as colunas e linhas de dados e poderá rolar para cima e para baixo.

O objeto JTable fornece uma tabela interativa. Se você clicar duas vezes em qualquer uma das células, poderá editar o conteúdo - embora qualquer edição afete apenas a GUI, não os dados subjacentes. (A

instagram viewer
ouvinte de evento precisaria ser implementado para lidar com a alteração de dados.).

Para alterar as larguras das colunas, passe o mouse na borda do cabeçalho de uma coluna e arraste-o para frente e para trás. Para alterar a ordem das colunas, clique e segure o cabeçalho da coluna e arraste-o para a nova posição.

Classificando colunas

Para adicionar a capacidade de classificar as linhas, chame o

setAutoCreateRowSorter
método: quando esse método é definido como verdadeiro, você pode clicar no cabeçalho de uma coluna para classificar as linhas de acordo com o conteúdo das células nessa coluna.

Alterando a aparência da tabela

Para controlar a visibilidade das linhas de grade, use o

setShowGrid
método: Para alterar completamente a cor da tabela, use o.
setBackground
e
setGridColor
métodos: As larguras da coluna da tabela são iguais por padrão. Se o contêiner em que a tabela se encontra for redimensionável, as larguras das colunas serão expandidas e encolherão e o contêiner aumentará ou diminuirá. Se um usuário redimensionar a coluna, a largura das colunas à direita será alterada para acomodar o novo tamanho da coluna.

As larguras iniciais da coluna podem ser definidas usando o método setPreferredWidth ou uma coluna. Use a classe TableColumn para obter primeiro uma referência para a coluna e, em seguida, o método setPreferredWidth para definir o tamanho:

Selecionando linhas

Por padrão, o usuário pode selecionar as linhas da tabela de uma das três maneiras:

  • Para selecionar uma única linha, selecione uma célula da tabela nessa linha.
  • Para selecionar várias linhas contínuas, arraste o mouse sobre várias linhas ou selecione as células da tabela com a célula Shift pressionada.
  • Para selecionar várias linhas não contínuas, selecione as células da tabela enquanto mantém pressionado o botão chave de controle (chave de comando para Macs).

Usando um modelo de tabela

O uso de algumas matrizes para os dados de uma tabela pode ser útil se você quiser uma simples Cordatabela com base em dados que pode ser editada. Se você olhar para a matriz de dados que criamos, ela contém outros tipos de dados que não

- a

coluna contém

e a

coluna contém

. No entanto, essas duas colunas são exibidas como Strings. Para alterar esse comportamento, crie um modelo de tabela.

Um modelo de tabela gerencia os dados a serem exibidos na tabela. Para implementar um modelo de tabela, você pode criar uma classe que estenda o

classe:

Os seis métodos acima são aqueles usados ​​neste guia passo a passo, mas há mais métodos definidos pelo

classe que é útil na manipulação de dados em um

objeto. Ao estender uma classe para usar o

você é obrigado a implementar apenas o

,

e

métodos.

Crie uma nova classe implementando os cinco métodos mostrados acima:

Faz sentido neste exemplo para o

classe para conter as duas seqüências que contêm os dados da tabela. Então o

,

e

Os métodos podem usar as matrizes para fornecer os valores para a tabela. Observe também como o

O método foi escrito para não permitir que as duas primeiras colunas sejam editadas.

Agora, em vez de usar as duas matrizes para criar o

objeto, podemos usar o

classe:

Quando o código for executado, você verá que o

O objeto está usando o modelo de tabela porque nenhuma célula da tabela é editável e os nomes das colunas estão sendo usados ​​corretamente. Se o

Como o método não havia sido implementado, os nomes das colunas na tabela seriam exibidos como os nomes padrão de A, B, C, D etc.

Vamos agora considerar o método

. Isso por si só faz com que o modelo da tabela valha a implementação, pois fornece

objeto com o tipo de dados contido em cada coluna. Se você se lembra, a matriz de dados do objeto possui duas colunas que não são

tipos de dados: o

coluna que contém ints e o

coluna que contém

. O conhecimento desses tipos de dados altera a funcionalidade fornecida pelo

objeto para essas colunas. A execução do código da tabela de amostra com o modelo de tabela implementado significa o

coluna será realmente uma série de caixas de seleção.

Adicionando um Editor ComboBox

Você pode definir editores personalizados para as células na tabela. Por exemplo, você pode tornar uma caixa de combinação uma alternativa à edição de texto padrão para um campo.

Aqui está um exemplo usando

o campo do país:

Para definir o editor padrão para a coluna do país, use o

classe para obter uma referência à coluna do país e o

método para definir o

como o editor de célula:

instagram story viewer