Inserir dados em uma tabela

Estou criando uma tabela em java que ao inserir dados é capturado e mostrado na tabela, mas não sei exatamente como faço para declarar minhas variaveis ao chamar na tabela.

cadastro usuarios = new cadastro();
usuarios.setNome(jTextField2.getText().trim());
usuarios.setCpf(jTextField3.getText());
usuarios.setEmail(jTextField4.getText());
usuarios.setTelefone(jTextField5.getText());
usuarios.setDescricao(jTextArea1.getText());

if ((jTextField2.getText().isEmpty())
		|| (jTextField3.getText().isEmpty())
		|| (jTextField4.getText().isEmpty())
		|| (jTextField5.getText().isEmpty())
		||(jTextArea1.getText().isEmpty()))
{
	JOptionPane.showMessageDialog(null,"por favor preencher todos os campos!");
}
else
{
	DefaultTableModel val= (DefaultTableModel) tbusuario.getModel();
	//erro com essa linha abaixo:
	val.addRow(new usuarios String[](nome,cpf,email,telefone,descricao));
		
	jTextField2.setText("");
	jTextField3.setText("");
	jTextField4.setText("");
	jTextField5.setText("");
	jTextArea1.setText("");

	jTextField2.requestFocus();
}

creio que ficaria desta forma.

if ((jTextField2.getText().isEmpty())
		|| (jTextField3.getText().isEmpty())
		|| (jTextField4.getText().isEmpty())
		|| (jTextField5.getText().isEmpty())
		||(jTextArea1.getText().isEmpty()))
{
	JOptionPane.showMessageDialog(null,"por favor preencher todos os campos!");
}
else
{
	DefaultTableModel val= (DefaultTableModel) tbusuario.getModel();
	//array de String, dentro das chaves deve se passar os valores desejados.
	val.addRow(new String [] {nome,cpf,email,telefone,descricao});
		
	jTextField2.setText("");
	jTextField3.setText("");
	jTextField4.setText("");
	jTextField5.setText("");
	jTextArea1.setText("");

	jTextField2.requestFocus();
}

Posso estar errado =D
Mas faz o teste, qualquer coisa avise.

oi funcionou sim, muito obrigada.
fiz minhas validações e depois criei um novo método para ler os dados que foram inseridos na tabela.

`public void leiaTabela() {
DefaultTableModel modelo = (DefaultTableModel) tbusuario.getModel();
modelo.setNumRows(0);

    UsuarioDao usuario = new UsuarioDao();

  for (cadastro p : usuario.listar()) {
        modelo.addRow(new Object[]{
            p.getIdusuario(),
            p.getNome(),
            p.getCpf(),
            p.getEmail(),
            p.getTelefone(),
            p.getDescricao(),
           
                
     });
  }`

Eu evitaria utilizar DefaultTableModel, ele basicamente só é útil para JTable com dados estáticos, já que você precisa adicionar itens nele.

Para JTable com conteúdo dinâmico, implemente o seu próprio TableModel, estendendo AbstractTableModel, assim não há necessidade de ficar escrevendo laços para inserir itens na JTable, basta simplesmente fazer seu TableModel renderizar uma coleção de objetos.

Veja um exemplo neste post aqui.

1 curtida

oi, de inicio eu fiz com AbstractTableModel só que executou somente uma vez tudo belezinha e depois ficou dando erro, por isso acabei optanto pelo DefaultTableModel. Mesmo assim, irei seguir o exemplo, e fazer de forma dinâmica. muito obrigada.

1 curtida