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.