Pessoal seguinte, por curiosidade e por eu achar que é o mais correcto decidi tentar aplicar o conceito de herança nos casos em que precisamos de validar os dados do formulario, a ideia é de primeiramente declarar as minhas textfields como public e de seguida dar um extends na minha classe que valida o q está a acontecer é que ele manda a msg de erro mesmo q o campo não esteja vazio e duplica a minha janela. Eis o codigo:
Classe Formularioaluno
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cursojava;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
/**
*
* @author Vanilson
*/
public class Formularioaluno extends JFrame implements ActionListener {
private JLabel lblnomealuno, lbldatanascimento, lblestadocivil, lblsexo;
public JTextField txtnomealuno, txtdatanascimento;
String[] estadocivil = {"Masculino","Femenino"};
private JComboBox cboestadocivil;
private JPanel painellabeltext, painelbotoes, painelsexo;
private JOptionPane sexo;
private JButton btnguardar, btnvisualizar, btnlimpar;
private JRadioButton masculino, femenino;
public Formularioaluno(){
super("Cadastro de aluno");
constrFormulario();
setVisible(true);
setSize(350,200);
setResizable(false);
setLocationRelativeTo(null);
}
public void constrFormulario(){
painellabeltext = new JPanel();
painellabeltext.setLayout(new GridLayout(4,2));
lblnomealuno = new JLabel("Aluno");
lbldatanascimento = new JLabel("Data de nascimento");
lblestadocivil = new JLabel("Estado civil");
lblsexo = new JLabel("Sexo");
txtnomealuno = new JTextField();
txtdatanascimento = new JTextField();
masculino = new JRadioButton("Masculino");
femenino = new JRadioButton("Femenino");
cboestadocivil = new JComboBox(estadocivil);
btnguardar = new JButton("Guardar");
btnguardar.addActionListener(this);
btnvisualizar = new JButton("Visualizar");
btnvisualizar.addActionListener(this);
btnlimpar = new JButton("Limpar");
btnlimpar.addActionListener(this);
painellabeltext.add(lblnomealuno);
painellabeltext.add(txtnomealuno);
painellabeltext.add(lbldatanascimento);
painellabeltext.add(txtdatanascimento);
painellabeltext.add(lblestadocivil);
painellabeltext.add(cboestadocivil);
painellabeltext.add(lblsexo);
painelsexo = new JPanel();
//painelsexo.add(lblsexo);
painelsexo.add(masculino);
painelsexo.add(femenino);
painelbotoes = new JPanel();
painelbotoes.add(btnguardar);
painelbotoes.add(btnvisualizar);
painelbotoes.add(btnlimpar);
getContentPane().add(painellabeltext,BorderLayout.NORTH);
getContentPane().add(painelsexo,BorderLayout.CENTER);
getContentPane().add(painelbotoes,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
Beanaluno beanaluno = new Beanaluno();
Validaaluno validaaluno = new Validaaluno();
if(e.getSource() == btnguardar){
validaaluno.validacoes();
//beanaluno.setNomealuno(txtnomealuno.getText());
}
else
if(e.getSource() == btnvisualizar){
JOptionPane.showMessageDialog(null,"Dados do aluno " + beanaluno.getNomealuno());
}
else
if(e.getSource() == btnlimpar){
txtnomealuno.setText(null);
txtdatanascimento.setText(null);
}
}
}
Classe Validaaluno
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cursojava;
import javax.swing.JOptionPane;
/**
*
* @author Vanilson
*/
public class Validaaluno extends Formularioaluno {
public Validaaluno(){
}
public void validacoes(){
if(txtnomealuno.getText().equals(""))
JOptionPane.showMessageDialog(null, "Digite o nome");
}
}