Tenho a tela de cadastro e um código java onde está minhas variáveis, mas quando salvo na tela de cadastro não tem valor nenhum dentro da variável como se não tivesse salvo, acredito eu que não esteja mesmo salvando
TelaCadastro:
private void buttonSalvar(java.awt.event.ActionEvent evt) {
Cadastro cad = new Cadastro();
if (tf_nomecliente.getText().equals("")
|| tf_endereco.getText().equals("")
|| tf_rg.getText().equals("")
|| tf_cpf.getText().equals("")
|| tf_tel.getText().equals("")
|| tf_tipo.getText().equals ("")
|| tf_raca.getText().equals ("")) {
JOptionPane.showMessageDialog(null, "Campo em branco. \n Preencha todos os campos.");
}
else {
new Visualizar().setVisible(true);
cad.setNome(tf_nomecliente.getText());
cad.setEndereco(tf_endereco.getText());
cad.setCpf(Integer.parseInt(tf_cpf.getText()));
cad.setRg(Integer.parseInt(tf_rg.getText()));
cad.setTelefone(Integer.parseInt(tf_tel.getText()));
}
}
Cadastro.java:
public class Cadastro {
private int id;
private String nome;
private int telefone;
private int rg;
private int cpf;
private String endereco;
}
Tem todo o get e set feito no Cadastro.java
Onde é que você está verificando o conteúdo da variável, é na tela Visualizar
?
Se for, onde é que você seta o cadastro nessa tela?
Eu estou um pouco perdido isso é para um trabalho da escola e não sei como fazer, eu tenho uma tela Visualizar que não possui muito só uns jLabel onde tento visualizar usando jLabel.setText(variável). Nisso ele não me retorna nada o que me faz ter certeza de que ele não salva de maneira nenhuma.
E onde é que você envia o objeto do tipo Cadastro
para a o objeto da classe Visualizar
?
Posta o código da classe Visualizar
.
Dica: Renomeia sua classe de Visualizar
para TelaDeVisualizacao
, fica mais legível.
Essa minha classe Visualizar é nova ainda está em branco, eu não sei como posso fazer o sistema salvar e exibir, única forma que pensei foi criando label e colocando setText, eu tento colocar isso em qualquer lugar pra tentar exibir mas não tenho êxito porque não está fazendo cadastro
E porque você não posta código completo das suas classes?
Onde você está fazendo esse setText
?
Não temos como adivinhar sua implementação.
Isso é o que tenho da minha tela de visualizar, o setText
seria dentro do jTextField só que ele está tendo erro ao tentar pegar a variável nome
e exibir e também por conta que ele não está salvando nada e mesmo que não houvesse erro nada seria exibido
Pôxa, posta o código e não foto dele.
Ele está dando erro porque no construtor da sua classe Visualizar
não tem nenhuma variável nome
.
Tira esse código do construtor.
Porque você diz que não está salvando nada? Era pra salvar onde?
Você não está criando um objeto do tipo Cadastro
e setando seus valores em memória?
Faça o seguinte, na sua classe Visualizar
crie o seguinte método:
public void setCadastro(Cadastro cadastro) {
// aqui você vai setar seus campos lendo o conteúdo do cadastro que foi recebido por parâmetro
jTextField.setText(cadastro.getNome());
}
E na sua classe TelaCadastro
crie os seguintes métodos:
// método para verificar se algum dos campos informados está em branco
private boolean campoEmBranco(String... campos) {
for (String campo : campos) {
if (campo == null || "".equals(campo)) {
return true;
}
}
return false;
}
// método para efetuar um cadastro e apresentar a tela de visualização
private void cadastrarVisualizar() {
String nome = tf_nomecliente.getText();
String endereco = tf_endereco.getText();
String rg = tf_rg.getText();
String cpf = tf_cpf.getText();
String telefone = tf_tel.getText();
String tipo = tf_tipo.getText();
String raca = tf_raca.getText();
if (campoEmBranco(nome, endereco, rg, cpf, telefone, tipo, raca)) {
JOptionPane.showMessageDialog(this, "Campo em branco. \n Preencha todos os campos.");
return;
}
Cadastro cad = new Cadastro();
cad.setNome(nome);
cad.setEndereco(endereco);
cad.setCpf(Integer.parseInt(cpf));
cad.setRg(Integer.parseInt(rg));
cad.setTelefone(Integer.parseInt(telefone));
Visualizar tela = new Visualizar(); // cria uma nova instância da tela
tela.setCadastro(cad); // envia o cadastro para a tela
tela.setVisible(true); // apresenta a tela
}
Agora edite o seu método tratador de evento buttonSalvar
para ficar assim:
private void buttonSalvar(java.awt.event.ActionEvent evt) {
// não implemente lógica nos tratadores de evento
// ao invés disso chame um método que realiza a operação desejada
cadastrarVisualizar();
}
Cara muito obrigado isso já resolveu a parte de salvar que era minha dúvida demais. O sistema ele tem requisito de ter que salvar em vetor/array, tipo poder fazer mais de um cadastro e essa sim é a parte que eu não imagino como deve ser feita
Essa é classe Cadastro.java