Boa tarde,
Estou usando o framework Genesis para popular as JCombo em minha aplicação Swing. Funciona muito bem, porém quando fui fazer o mesmo com uma JTable não deu muito certo, por esta ter uma diferença que ela deve ser preenchida conforme uma pesquisa. Ela deve preencher de forma que eu coloco o nome do usuário que estou procurando e seleciono o botão Buscar.
O problema é que está gerando uma NullPointerException ao buscar:
java.lang.NullPointerException
at br.com.gvt.view.form.ConsultaUsuarioForm.getDataCriacao(ConsultaUsuarioForm.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Alguém sabe o que pode ser?
Valeu!
@Form
public class ConsultaUsuarioForm {
private Usuario usuario;
private String nomeBusca;
public ConsultaUsuarioForm() {
usuario = new Usuario();
}
public Long getId() {
return usuario.getId();
}
public void setId(Long id) {
this.usuario.setId(id);
}
public String getNome() {
return usuario.getNome();
}
public void setNome(String nome) {
this.usuario.setNome(nome);
}
public String getLogin() {
return usuario.getLogin();
}
public void setLogin(String login) {
this.usuario.setLogin(login);
}
public String getSenha() {
return usuario.getSenha();
}
public void setSenha(String senha) {
this.usuario.setSenha(senha);
}
public Date getDataCriacao() {
return usuario.getDataCriacao();
}
public void setDataCriacao(Date dataCriacao) {
this.usuario.setDataCriacao(dataCriacao);
}
public Regional getRegional() {
return usuario.getRegional();
}
public void setRegional(Regional regional) {
this.usuario.setRegional(regional);
}
public TipoUsuario getTipoUsuario() {
return usuario.getTipoUsuario();
}
public void setTipoUsuario(TipoUsuario tipoUsuario) {
this.usuario.setTipoUsuario(tipoUsuario);
}
public Usuario getUsuarioSuperior() {
return usuario.getUsuarioSuperior();
}
public void setUsuarioSuperior(Usuario usuarioSuperior) {
this.usuario.setUsuarioSuperior(usuarioSuperior);
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getNomeBusca() {
return nomeBusca;
}
public void setNomeBusca(String nomeBusca) {
this.nomeBusca = nomeBusca;
}
@Action
@DataProvider(objectField="usuario",callOnInit=false)
public List<Usuario> populaUsuarios() throws DAOException{
List<Usuario> list = UsuarioBO.buscarPorNome(nomeBusca);
return list;
}
}
@ViewHandler
public class ConsultaUsuarios extends JDialog {
//...
private SwingBinder binder = null;
/**
* This is the default constructor
*/
public ConsultaUsuarios() {
super();
initialize();
binder = new SwingBinder(this,new ConsultaUsuarioForm());
binder.bind();
}
/**
* This method initializes tblUsuarios
*
* @return javax.swing.JTable
*/
private JTable getTblUsuarios() {
if (tblUsuarios == null) {
String header [] = new String[]{
"Login","Nome","Regional","Tipo","Superior"};
String objDesc [] = new String[]{
"login","nome","regional.descricao","tipoUsuario.descricao","usuarioSuperior.nome"};
TableModel model = new DefaultTableModel(header,0);
tblUsuarios = new JTable(model);
tblUsuarios.setName("usuario");
tblUsuarios.putClientProperty(SwingBinder.COLUMN_NAMES, objDesc);
tblUsuarios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
return tblUsuarios;
}
/**
* This method initializes btnBuscar
*
* @return javax.swing.JButton
*/
private JButton getBtnBuscar() {
if (btnBuscar == null) {
btnBuscar = new JButton();
btnBuscar.setText("Buscar");
btnBuscar.setName("populaUsuarios");
btnBuscar.setPreferredSize(new Dimension(75, 22));
}
return btnBuscar;
}
/**
* This method initializes txtConsulta
*
* @return javax.swing.JTextField
*/
private JTextField getTxtConsulta() {
if (txtConsulta == null) {
txtConsulta = new JTextField();
txtConsulta.setColumns(20);
txtConsulta.setName("nomeBusca");
}
return txtConsulta;
}
//...
}