[Ajuda] JTable - Java Desktop Application

metRo_

Power Member
Como o tópico diz estou com problemas em acrescentar dados na JTable. Eu vi que havia alguns tópicos aqui no fórum sobre mas as soluções não me ajudaram.

Já li este site de trás para a frente http://java.sun.com/docs/books/tutorial/uiswing/components/table.html e percebo mas tipo esse site é para uma java applcation e não uma java desktop application que é o meu caso.

Alguma ajuda? Eu quero carrega num botão e os dados da base de dados irem para a tabela mas esta parte já está feita, só falta mesmo saber como add os dados à tabela.
 
Há coisa de um ano tive problemas com as JTables num projecto de Universidade. O maior problema que encontrei foi que tinha que definir o número de linhas da tabela quando eu queria que isso fosse dinamico (numero de linhas = numero de registos na tabela). Para conseguires aceder a um método que te permite fazer isto, necessitas fazer uma conversão á JTable criada pelo NetBeans. Sei que não é bem o teu problema, mas com certeza que é útil e acabarias por fazer essa pergunta.

Antes demais, define o número de linas da tabela a zero. Senão tens nenhum registo não necessitas de ter linhas vazias. Depois, no botão onde ocorre o evento que adiciona dados á tabela coloca esta linha de código:

Código:
DefaultTableModel tabelaTeste = (DefaultTableModel)tblTeste.getModel();

"tabelaTeste" é o nome da nova Tabela, enquanto que o "tblTeste" é o nome que deste á tabela original. Isto vai converter a tua tabela numa DefaultTableModel. Assim vais conseguir aceder a métodos que não tinhas anteriormente. Embora teres criado uma nova varíável/tabela, esta está directamente associada á tabela que adicionaste usando a GUI do NetBeans, assim todas as alterações que fizeres á tabelaTeste, vão aparecer na tblTeste.

Agora, supondo que tens 3 colunas, para adicionares dados á tabela tens que usar este método do seguinte modo:

Código:
tabelaTeste.addRow(new Object[] { 
"coluna1",
"coluna2",
"coluna3"});

Nos espaços ocupados pelas Strings "colunax" podes colocar os valores que pretendes. Se por exemplo forem dados que o utilizador inseriu em TextFields poderás colocar o valor das mesmas ... algo deste género:

Código:
tabelaTeste.addRow(new Object[] { 
txtNome.getText(),
txtMorada.getText(),
txtTelefone.getText()});

Assim, sempre que executares este método ficarás com mais uma linha na tua tabela devidamente preenchida. Não te esqueças que a criação de um DefaultTableModel é essencial.

Para removeres linhas adicionadas usas o método seguinte:

Código:
tabelaTeste.removeRow(index);

index é um inteiro que define a posição da linha que pretendes remover.
 
Muito obrigado ;)
Só não percebo é porque estas funções addRow, removeRow, etc não estão disponiveis logo no jTable. Mas de qualquer das maneiras percebi como fazer ;)
 
Muito obrigado ;)
Só não percebo é porque estas funções addRow, removeRow, etc não estão disponiveis logo no jTable. Mas de qualquer das maneiras percebi como fazer ;)

Também mandei com a cabeça na parede diversas vezes e também não percebi ... mas depois arranjei esta solução e nunca mais tive chatices :D
 
Back
Topo