ele deve tá usando o netbeans, vai nas configurações nas propriedades do TextField >> Eventos >> Procura o mouseClicked ou o perfomed e remove
Tem um listener registrado no seu botão?
Retirei o evento, mas não adiantou nada!
Fiz um teste agora, colocando para ele setar um texto qualquer, ele insere normalmente.
jTextFieldCargo.setText(“teste”);
Quando clico no botão ele lança o testo normalmente, o problema é que quando eu mando ele imprimir o conteúdo do getCargo (que deveria estar preenchido, já que inicializei pelo contador) ele imprimi vazio, como se não tivesse nada.
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
Aqui a actionlistener, está correta certo?
Olha, por favor, não é possível, preciso terminar isso e não encontro o erro… Só me ajudem a entender se esta parte está correta:
ISSO AQUI É NO CADASTRAR TECNICO:
CadastroPessoa.setCargo(jTextFieldCargo.getText());
AlterarTecnico Alterar = new AlterarTecnico(CadastroPessoa);
Como podem ver, depois que eu seto a informação lá no meu objeto
eu crio um objeto lá da parte de alterar técnico SOMENTE para passar como parâmetro o meu objeto preenchido aqui… Tanto que “Alterar” não é utilizado.
AGORA NA CLASSE ALTERAR TECNICO:
public AlterarTecnico() {
initComponents();
}
public AlterarTecnico(Pessoa CadastroPessoa){
CadastroT = CadastroPessoa;
}
Tenho dois cosntrutores, o primeiro chamando os componentes (colocar o init dentro do outro construtor já tentei também) e o outro construtor pedindo um objeto como parÂmetro, como vimos no código anterior, eu chamei esse construtor e passei o objeto…
dentro do construtor, eu estou pegando o valor que recebi e passando para meu objeto local.
CONFIRMEM PRA MIM, POR FAVOR…
Eu estou então, preenchendo o meu objeto local? com as mesmas informações que preenchi no CadastroTecnico??
Olhando os trecho que você postou, está certo.
O que deve estar acontecendo é que em algum outro lugar você está instanciando outra Pessoa.
Mas isso só é possível de confirmar se você postar o código completo de suas classes e não somente pequenos trechos.
mas eu postei o código completo, a parte que eu ocultei é somente o “Generated Code”…
Comecei os códigos agora, só trabalhei em 3 classes, “Pessoa” “CadastrarTecnico” “AlterarTecnico” … O que eu postei é somente o que escrevi mesmo, não é nada anormal, por isso estou tão estressado com esse código.
Eu instanciei a pessoa em dois lugares, realmente.
primeiro no CadastrarTecnico para pegar as informações…
Pessoa CadastroPessoa = new Pessoa();
Segundo no Alterar Técnico
Pessoa CadastroT = new Pessoa();
Em terceiro, eu criei um objeto de AlterarTecnico (o construtor que pede o objeto)
AlterarTecnico Alterar = new AlterarTecnico(CadastroPessoa);
Neste caso somente para preencher o construtor mesmo…
Se alguém puder, passa um e-mail, eu mando o arquivo do projeto todo, como disse, comecei agora mesmo, é super pequeno!
cara, vou fazer o código aki e ver se também dá erro
cara, aqui funcionou, a unica diferença foi que usei JFrame ao invés de JPanel
Ação no CadastroTecnico
Pessoa p = new Pessoa();
p.setCargo(jTextField1.getText());
AlterarTecnico at = new AlterarTecnico(p);
at.setVisible(true);
Código no AlterarTécnico
public AlterarTecnico() {
initComponents();
}
Pessoa p = new Pessoa();
public AlterarTecnico(Pessoa p) {
initComponents();
this.p = p;
}
Ação do botão no AlterarTecnico
jTextField1.setText(p.getCargo());
Cara, me da uma ajuda…
Eu postei as classes porque entre elas que ocorrem a comunicação dos objetos, mas eu esqueci de uam coisa… A classe principal, onde tem meu menu e que chama cada Jpanel…
private void jMenuItemAlterarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
setContentPane(new AlterarTecnico());
setVisible(true);
}
Desta forma que estou chamando o meu jpanel… Isso que pode estar influenciando em algo?
Tsuhiro23,
Poderia postar o código completo do modelo que você montou que funcionou?
Obrigado.
@fcwabr, se você postasse o código completo das suas classes, já teríamos te mostrado onde está o problema.
Não é dífícil é só usar as tags como abaixo:
[code]
// faz um Ctrl+C de todo o conteúdo de seu arquivo .java e cola aqui
[/code]
[code]
// faz um Ctrl+C de todo o conteúdo de outro arquivo .java e cola aqui
[/code]
[code]
// repete o procedimento pra todos os .java que você tem
[/code]
Você pode achar que é bobagem, mas não é.
Do jeito que a discussão está andando com somente alguns trechos de código, não estamos conseguindo te ajudar.
Você postando o código completo fica bem fácil de identificar o problema e te mostrar a solução.
package telas;
import modelo.Pessoa;
public class CadastroTecnico extends javax.swing.JFrame {
public CadastroTecnico() {
initComponents();
}
Pessoa CadastroPessoa = new Pessoa();
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextFieldCodigo = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextFieldNome = new javax.swing.JTextField();
jTextFieldCpf = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextFieldCargo = new javax.swing.JTextField();
jTextFieldSenha = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jButtonCadastroTecnico = new javax.swing.JButton();
jButtonCancelar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("CÓDIGO");
jLabel2.setText("NOME");
jLabel3.setText("CPF");
jLabel4.setText("CARGO");
jLabel5.setText("SENHA");
jButtonCadastroTecnico.setText("CADASTRAR");
jButtonCadastroTecnico.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButtonCadastroTecnicoMouseClicked(evt);
}
});
jButtonCadastroTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCadastroTecnicoActionPerformed(evt);
}
});
jButtonCancelar.setText("CANCELAR");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE, 203, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addComponent(jTextFieldCargo))
.addComponent(jButtonCadastroTecnico))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButtonCancelar)
.addComponent(jTextFieldSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(34, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextFieldCargo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextFieldSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonCadastroTecnico)
.addComponent(jButtonCancelar))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jButtonCadastroTecnicoMouseClicked(java.awt.event.MouseEvent evt) {
CadastroPessoa.setCargo(jTextFieldCargo.getText());
AlterarTecnico Alterar = new AlterarTecnico(CadastroPessoa);
}
private void jButtonCadastroTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(CadastroTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(CadastroTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(CadastroTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(CadastroTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CadastroTecnico().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonCadastroTecnico;
private javax.swing.JButton jButtonCancelar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextFieldCargo;
private javax.swing.JTextField jTextFieldCodigo;
private javax.swing.JTextField jTextFieldCpf;
private javax.swing.JTextField jTextFieldNome;
private javax.swing.JTextField jTextFieldSenha;
// End of variables declaration
}
package telas;
import modelo.Pessoa;
public class AlterarTecnico extends javax.swing.JFrame {
Pessoa CadastroT = new Pessoa();
public AlterarTecnico() {
initComponents();
}
public AlterarTecnico(Pessoa CadastroTecnico){
CadastroT = CadastroTecnico;
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextFieldCodigo = new javax.swing.JTextField();
jTextFieldNome = new javax.swing.JTextField();
jTextFieldCpf = new javax.swing.JTextField();
jTextFieldCargo = new javax.swing.JTextField();
jTextFieldSenha = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jButtonAlterarTecnico = new javax.swing.JButton();
jButtonCancelar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel5.setText("SENHA");
jLabel4.setText("CARGO");
jLabel3.setText("CPF");
jLabel2.setText("NOME");
jLabel1.setText("CÓDIGO");
jButtonAlterarTecnico.setText("ALTERAR");
jButtonAlterarTecnico.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButtonAlterarTecnicoMouseClicked(evt);
}
});
jButtonAlterarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAlterarTecnicoActionPerformed(evt);
}
});
jButtonCancelar.setText("CANCELAR");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE, 203, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldCargo)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jButtonAlterarTecnico)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButtonCancelar)))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addComponent(jTextFieldSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(85, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextFieldCargo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextFieldSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonAlterarTecnico)
.addComponent(jButtonCancelar))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jButtonAlterarTecnicoMouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldCargo.setText(CadastroT.getCargo());
}
private void jButtonAlterarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(AlterarTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(AlterarTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(AlterarTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(AlterarTecnico.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new AlterarTecnico().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonAlterarTecnico;
private javax.swing.JButton jButtonCancelar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextFieldCargo;
private javax.swing.JTextField jTextFieldCodigo;
private javax.swing.JTextField jTextFieldCpf;
private javax.swing.JTextField jTextFieldNome;
private javax.swing.JTextField jTextFieldSenha;
// End of variables declaration
}
package modelo;
public class Pessoa {
private String nome;
private String cpf;
private String senha;
private String codigo;
private String login;
private String cargo;
public Pessoa(String nome, String cpf, String senha, String codigo, String login, String cargo) {
this.nome = nome;
this.cpf = cpf;
this.senha = senha;
this.codigo = codigo;
this.login = login;
this.cargo = cargo;
}
public Pessoa() {
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
}
package telas;
public class Principal extends javax.swing.JFrame {
public Principal() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu2 = new javax.swing.JMenu();
jMenuItemCadastrarTecnico = new javax.swing.JMenuItem();
jMenuItemAlterarTecnico = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 380, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 257, Short.MAX_VALUE)
);
jMenu2.setText("File");
jMenuItemCadastrarTecnico.setText("Cadastrar Técnico");
jMenuItemCadastrarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemCadastrarTecnicoActionPerformed(evt);
}
});
jMenu2.add(jMenuItemCadastrarTecnico);
jMenuItemAlterarTecnico.setText("Alterar Técnico");
jMenuItemAlterarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemAlterarTecnicoActionPerformed(evt);
}
});
jMenu2.add(jMenuItemAlterarTecnico);
jMenuBar1.add(jMenu2);
jMenu3.setText("Edit");
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jMenuItemCadastrarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
new CadastroTecnico().setVisible(true);
}
private void jMenuItemAlterarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
new AlterarTecnico().setVisible(true);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItemAlterarTecnico;
private javax.swing.JMenuItem jMenuItemCadastrarTecnico;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
Sensacional @fcwabr.
Basicamente o problema é que você sempre instanciava novas telas.
E ao instanciar sua tela de cadastro, você sempre criava uma nova pessoa.
Então uma dica de ouro: a instrução new
tem esse nome, pois ela sempre cria um novo objeto (e aloca memória).
Muitas vezes nós só queremos manipular um objeto que já existe.
Parece óbvio, mas as vezes quando se está começando a programar isso não fica evidente.
Eu dei uma refatorada no teu código e inclui comentários nos fontes.
Dá uma olhada com calma pra entender como está funcionando.
Bons estudos!!!
package telas;
import modelo.Pessoa;
public class Principal extends javax.swing.JFrame {
public Principal() {
super("Tela Principal");
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu2 = new javax.swing.JMenu();
jMenuItemCadastrarTecnico = new javax.swing.JMenuItem();
jMenuItemAlterarTecnico = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 380, Short.MAX_VALUE));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 257, Short.MAX_VALUE));
jMenu2.setText("File");
jMenuItemCadastrarTecnico.setText("Cadastrar Técnico");
jMenuItemCadastrarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemCadastrarTecnicoActionPerformed(evt);
}
});
jMenu2.add(jMenuItemCadastrarTecnico);
jMenuItemAlterarTecnico.setText("Alterar Técnico");
jMenuItemAlterarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemAlterarTecnicoActionPerformed(evt);
}
});
jMenu2.add(jMenuItemAlterarTecnico);
jMenuBar1.add(jMenu2);
jMenu3.setText("Edit");
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
pack();
}// </editor-fold>
// o mais elegante seria ter uma classe que representa o modelo das suas telas,
// aí essa pessoa seria declarada lá, mas, por enquanto, deixa a pessoa aqui
private Pessoa pessoa;
private void jMenuItemCadastrarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
// aqui você está sempre criando uma nova tela
// não precisa instancia só uma vez
// new TelaCadastro().setVisible(true);
// obtém a intancia da tela
TelaCadastro tela = getTelaCadastro();
// a linha abaixo é pra já cadastrar uma nova pessoa
// e fazer com que sua variável desta classe
// já a referencie
//
// o mais elegante seria você ter um listener para a tela de cadastro
// e tratar um evento 'onPessoaCadastrada' por exemplo
// mas isso você pode melhorar depois
//
// por ora assim já vai te ajudar
this.pessoa = tela.criarNovoCadastro();
// apresenta a tela
tela.setVisible(true);
}
// variavel da tela de cadastro
private TelaCadastro telaCadastro;
private TelaCadastro getTelaCadastro() {
if (telaCadastro == null) {
// assim só vai instanciar a tela uma vez
telaCadastro = new TelaCadastro();
}
return telaCadastro;
}
private void jMenuItemAlterarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
// aqui você está sempre criando uma nova tela
// não precisa instancia só uma vez
// new TelaAlteracao().setVisible(true);
// obtém a instância da tela
TelaAlteracao tela = getTelaAlteracao();
// diz pra tela de alteração quem você vai alterar
tela.setPessoa(pessoa);
// apresenta a tela
tela.setVisible(true);
}
// variável da tela de alteracao
private TelaAlteracao telaAlteracao;
private TelaAlteracao getTelaAlteracao() {
if (telaAlteracao == null) {
// assim só vai instanciar a tela uma vez
telaAlteracao = new TelaAlteracao();
}
return telaAlteracao;
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
// <editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
// </editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItemAlterarTecnico;
private javax.swing.JMenuItem jMenuItemCadastrarTecnico;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
package telas;
import modelo.Pessoa;
// renomeei sua classe de CadastroTecnico para TelaCadastro
// só pra ficar legível a operacionalidade que ela provê
// também apaguei o método main dela,
// pois o ponto de entrada do seu programa é a classe Principal
public class TelaCadastro extends javax.swing.JFrame {
// procure sempre utilizar os modificadores de acesso
// se tem duvida de qual usar, usa private
// utilize sempre nome minusculo para variáveis, fica mais legível
// não precisa chamar o objeto de cadastroPessoa
// o objeto não representa um cadastro, ele representa uma pessoa
// então chama só de pessoa
// se você fizer assim, a cada instancia ção dessa tela, você está criando uma nova Pessoa
// private Pessoa pessoa = new Pessoa();
// sugiro não inicializar na construção
// ao invés disso, crie um método para cadastrar uma nova pessoa
private Pessoa pessoa;
public Pessoa criarNovoCadastro() {
pessoa = new Pessoa();
return pessoa;
}
public TelaCadastro() {
super("Tela de Cadastro");
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextFieldCodigo = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextFieldNome = new javax.swing.JTextField();
jTextFieldCpf = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextFieldCargo = new javax.swing.JTextField();
jTextFieldSenha = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jButtonCadastroTecnico = new javax.swing.JButton();
jButtonCancelar = new javax.swing.JButton();
// não seta o EXIT_ON_CLOSE
// não faz sentido sair do programa quando fecha essa janela
// usa o HIDE_ON_CLOSE pra só dar um setVisible(false) nela
setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
jLabel1.setText("CÓDIGO");
jLabel2.setText("NOME");
jLabel3.setText("CPF");
jLabel4.setText("CARGO");
jLabel5.setText("SENHA");
jButtonCadastroTecnico.setText("CADASTRAR");
// se tem um ActionListener, não precisa tratar o mouseClicked
// jButtonCadastroTecnico.addMouseListener(new java.awt.event.MouseAdapter() {
// public void mouseClicked(java.awt.event.MouseEvent evt) {
// jButtonCadastroTecnicoMouseClicked(evt);
// }
// });
jButtonCadastroTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCadastroTecnicoActionPerformed(evt);
}
});
jButtonCancelar.setText("CANCELAR");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout
.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(jLabel5).addGap(18, 18, 18).addGroup(jPanel1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel1).addGap(18, 18, 18).addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE,
226, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel2).addGap(18, 18, 18).addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE,
210, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel3).addGap(18, 18, 18).addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE,
203, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel4).addGap(18, 18, 18).addComponent(jTextFieldCargo)).addComponent(jButtonCadastroTecnico))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jButtonCancelar).addComponent(jTextFieldSenha,
javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(34, Short.MAX_VALUE)));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(jTextFieldCodigo,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(jTextFieldNome,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jTextFieldCpf,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4).addComponent(jTextFieldCargo,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel5).addComponent(jTextFieldSenha,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18).addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButtonCadastroTecnico).addComponent(jButtonCancelar))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
pack();
}// </editor-fold>
private void jButtonCadastroTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
// evite implementar lógica diretamente nos método tratadores de evento
// ao invés disso, dele para um método com nome mais coerente
salvarDados();
// depois de salvar os dados da pessoa, pode fechar esta janela
setVisible(false);
}
private void salvarDados() {
// atualiza os atributos da pessoa com os valores dos campos da tela
pessoa.setCodigo(jTextFieldCodigo.getText());
pessoa.setNome(jTextFieldNome.getText());
pessoa.setCpf(jTextFieldCpf.getText());
pessoa.setCargo(jTextFieldCargo.getText());
pessoa.setSenha(jTextFieldSenha.getText());
// aqui você só instanciou a tela
// TelaAlteracao telaAlteracao = new TelaAlteracao(pessoa);
// // mas você esqueceu de apresentá-la com o setVisible
// telaAlteracao.setVisible(true);
// mesmo assim, não faz sentido abrir a tela de alteração
// após acabar de cadastrar a pessoa
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonCadastroTecnico;
private javax.swing.JButton jButtonCancelar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextFieldCargo;
private javax.swing.JTextField jTextFieldCodigo;
private javax.swing.JTextField jTextFieldCpf;
private javax.swing.JTextField jTextFieldNome;
private javax.swing.JTextField jTextFieldSenha;
// End of variables declaration
}
package telas;
import modelo.Pessoa;
// Alterar é um verbo
// Para nome de classes procure utilizar substantivos
// que realmente representem o que a classe é
// Utilize verbos para nomes de métodos
// renomeei sua classe AlterarTecnico para TelaAlteracao
// também apaguei o método main dessa classe que não faz sentido
// a classe que executa seu programa é a classe Principal
// só faz sentido ela ter o método main
public class TelaAlteracao extends javax.swing.JFrame {
// procure sempre utilizar os modificadores de acesso
// se tem duvida de qual usar, usa private
// utilize sempre nome minusculo para variáveis, fica mais legível
// não precisa chamar o objeto de cadastroPessoa
// o objeto não representa um cadastro, ele representa uma pessoa
// então chama só de pessoa
private Pessoa pessoa = new Pessoa();
public TelaAlteracao() {
super("Tela de Alteração");
initComponents();
}
// apaguei o construtor parametrizado,
// você não precisa ficar instanciando o tempo todo novas telas
// reaproveia a instancia que você criou e pronto
// então usa um método pra dizer pra tela qual é a pessoa sendo alterada
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
// já preenche os campos da tela com os dados da pessoa
jTextFieldCodigo.setText(pessoa.getCodigo());
jTextFieldNome.setText(pessoa.getNome());
jTextFieldCpf.setText(pessoa.getCpf());
jTextFieldCargo.setText(pessoa.getCargo());
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextFieldCodigo = new javax.swing.JTextField();
jTextFieldNome = new javax.swing.JTextField();
jTextFieldCpf = new javax.swing.JTextField();
jTextFieldCargo = new javax.swing.JTextField();
jTextFieldSenha = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jButtonAlterarTecnico = new javax.swing.JButton();
jButtonCancelar = new javax.swing.JButton();
// não seta o EXIT_ON_CLOSE
// não faz sentido sair do programa quando fecha essa janela
// usa o HIDE_ON_CLOSE pra só dar um setVisible(false) nela
setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
jLabel5.setText("SENHA");
jLabel4.setText("CARGO");
jLabel3.setText("CPF");
jLabel2.setText("NOME");
jLabel1.setText("CÓDIGO");
jButtonAlterarTecnico.setText("ALTERAR");
// se tem um ActionListener, não precisa tratar o mouseCLicked
// jButtonAlterarTecnico.addMouseListener(new java.awt.event.MouseAdapter() {
// public void mouseClicked(java.awt.event.MouseEvent evt) {
// jButtonAlterarTecnicoMouseClicked(evt);
// }
// });
jButtonAlterarTecnico.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAlterarTecnicoActionPerformed(evt);
}
});
jButtonCancelar.setText("CANCELAR");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout
.setHorizontalGroup(
jPanel1Layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel1).addGap(18, 18, 18).addComponent(jTextFieldCodigo,
javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel2).addGap(18, 18, 18).addComponent(jTextFieldNome,
javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel3)
.addGap(18, 18, 18).addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE, 203, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel4).addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTextFieldCargo)
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jButtonAlterarTecnico)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jButtonCancelar)))))
.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel5).addGap(18, 18, 18).addComponent(jTextFieldSenha,
javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(85, Short.MAX_VALUE)));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jTextFieldCpf, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4).addComponent(jTextFieldCargo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel5).addComponent(jTextFieldSenha, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButtonAlterarTecnico).addComponent(jButtonCancelar)).addContainerGap()));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()));
pack();
}// </editor-fold>
private void jButtonAlterarTecnicoActionPerformed(java.awt.event.ActionEvent evt) {
// chama um método mais coerente, pra tirar a lógica do tratador de eventos
alterarDados();
// depois de alterar os dados da pessoa, pode fechar esta janela
setVisible(false);
}
private void alterarDados() {
// atualiza os atributos da pessoa com os valores dos campos da tela
pessoa.setCodigo(jTextFieldCodigo.getText());
pessoa.setNome(jTextFieldNome.getText());
pessoa.setCpf(jTextFieldCpf.getText());
pessoa.setCargo(jTextFieldCargo.getText());
pessoa.setSenha(jTextFieldSenha.getText());
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonAlterarTecnico;
private javax.swing.JButton jButtonCancelar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextFieldCargo;
private javax.swing.JTextField jTextFieldCodigo;
private javax.swing.JTextField jTextFieldCpf;
private javax.swing.JTextField jTextFieldNome;
private javax.swing.JTextField jTextFieldSenha;
// End of variables declaration
}
Agradeço por todo seu trabalho, peço desculpas em algumas questões como o método main nas outras classes, essa parte que te mandei foi quando estava mudando para jframe (antes estava montando com jpanel)
Vou dar uma olhada certinha nele, obrigado pelas dicas de boa pratica, vou ler todo o código para entender ele direitinho…
Agradeço a você e ao Tsuhiro23 por toda atenção dada nessa postagem.
Vlw gente!
Disponha
Se você observar bem, a sua tela de cadastro e a tela de alteração tem exatamente os mesmo campos.
As duas funcionalidades poderiam ser implementadas numa mesma classe de tela contendo os métodos criarNovoCadastro
e setPessoa
.
Aí quando quisesse criar uma nova pessoa, usaria o método criarNovoCadastro
, antes de apresentar a janela.
E se quisesse alterar uma pessoa existente, usaria o método setPessoa
, antes de apresentar a janela.