Como chamar uma outra janela com campos preenchidos?

Olá pessoal!

Quero saber se é possível preencher campos de uma janela quando esta janela é acionada por outra.

Tentei fazer da seguinte forma:

Tenho o seguinte código:
Janela com método no botão que lista todos os usuários do banco:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { AlterarAluno CoAlterarAluno = new AlterarAluno(); CoAlterarAluno.setVisible(true); int row = jTable1.getSelectedRow(); CoAlterarAluno.AtualizarAluno();

Método da Janela que é chamada quando o evento do botão acima é acionado:

public void AtualizarAluno(){ AlunoDAO.fabricaAlunoDAO().atualizar(AlterarAluno); jTextField1.setText(String.valueOf(AlterarAluno.getCodUsuario())); jTextField2.setText(String.valueOf(AlterarAluno.getNome())); jTextField3.setText(String.valueOf(AlterarAluno.getMatricula())); LimparCampos(); }

Dá o seguinte erro:
[color=red]attempt to create saveOrUpdate event with null entity[/color]
Porque os campos não são preenchidos.

Existe outra maneira mais fácil?
Agradeço.

Boa noite Jackye.

Sim, é possível, basta que você passe um objeto da sua entidade de dados que está populada e cujos dados você quer alterar para esta outra Janela, dentro do construtor como parâmetro. Depois crie um método secundário nesta segunda janela que possa se invocado dentro do construtor e cuja a implementação seja popular os JTextFields, JComboBoxes e etc.

Vamos a um exemplo:

Suponhamos que você tenha uma entidade de dados cujo objeto seja ClienteBean, com os campos Nome, endereço e telefone, com os getters e setters já implementados.

public class ClienteForm extends JFrame {

     public ClienteForm(){
           initComponents();
     }

     public ClienteForm(ClienteBean bean){
           initComponents();
           populateFields(bean);
     }

     private void initComponents(){
         setDefaultCloseOperation(ExitOnClose);

         /* Aqui você instancia todos os JTextFields,
             JComboBoxes e etc, e também configura
             o Layout de tela e aloca os componentes nele */
     }

     // Método para popular os JTextFields, ComboBoxes e etc.
     public void populateFields(ClienteBean cbean){
          txtfieldNome.setText(cbean.getNome());
          txtfieldEndereco.setText(cbean.getEndereco());
          txtfieldTelefone.setText(cbean.getTelefone());
     }

}

Pronto, com os dois contrutores sobrecarregados, voce pode instanciar o ClienteForm de duas maneiras: Quando for inserir, instancie com o primeiro construtor, o o método initComponentes irá configurar os JTextFields e tudo mais vazios. Já com o segundo construtor, voce passe a entidade de dados populados que passará para o método populateFields que se encarregará de populá-los.

Vale ressaltar que é recomendável você invocar primeiro o método initComponents, para que ele possa instanciar os componentes primeiro, e depois o populateFieds possa populá-los em caso de atualização.

Um abraço.