Ola galera…
Estou iniciando em JGoodies. Estou refazendo o exemplo do artigo de interface gráficas com o JGoodies Binding da revista javamagazine 39 e não estou consiguindo fazer binding de beans com atriubutos em Calendar e Integer, da um monte erros vejam:
Exception in thread "AWT-EventQueue-0" com.jgoodies.binding.beans.PropertyAccessException: Failed to set an adapted Java Bean property.
cause=java.lang.IllegalArgumentException: argument type mismatch
bean=Floriano Peixoto
bean type=br.com.fipp.jgoodies.business.entity.Cliente
value=21
value type=java.lang.String
property name=dtCadastro
property type=java.util.Calendar
property setter=public void br.com.fipp.jgoodies.business.entity.Cliente.setDtCadastro(java.util.Calendar)
at com.jgoodies.binding.beans.PropertyAccessException.createWriteAccessException(PropertyAccessException.java:133)
at com.jgoodies.binding.beans.BeanUtils.setValue(BeanUtils.java:634)
at com.jgoodies.binding.beans.BeanAdapter.setValue0(BeanAdapter.java:1191)
at com.jgoodies.binding.beans.BeanAdapter.access$600(BeanAdapter.java:279)
at com.jgoodies.binding.beans.BeanAdapter$SimplePropertyAdapter.setValue(BeanAdapter.java:1382)
at com.jgoodies.binding.adapter.TextComponentConnector.setSubjectText(TextComponentConnector.java:297)
at com.jgoodies.binding.adapter.TextComponentConnector.updateSubject(TextComponentConnector.java:235)
at com.jgoodies.binding.adapter.TextComponentConnector$TextChangeHandler.insertUpdate(TextComponentConnector.java:350)
at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:184)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:754)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:711)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:673)
at javax.swing.text.JTextComponent.replaceSelection(JTextComponent.java:1099)
at javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.actionPerformed(DefaultEditorKit.java:839)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1571)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2763)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2798)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2726)
at java.awt.Component.processEvent(Component.java:5265)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:672)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:920)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:798)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:636)
at java.awt.Component.dispatchEventImpl(Component.java:3841)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.jgoodies.binding.beans.BeanUtils.setValue(BeanUtils.java:621)
... 37 more
de uma olhada no codigo do meu bean Cliente
public class Cliente extends Model
{
private static final long serialVersionUID = -208760893029673800L;
public static final String PROPERTY_ID = "id";
public static final String PROPERTY_NOME = "nome";
public static final String PROPERTY_RG = "rg";
public static final String PROPERTY_NASCIMENTO = "dtNascimento";
public static final String PROPERTY_CADASTRO = "dtCadastro";
private Integer id;
private String nome;
private String rg;
private Calendar dtNascimento;
private Calendar dtCadastro;
public Cliente()
{
super();
}
/**
* @param id
* @param nome
* @param rg
* @param dtNascimento
* @param dtCadastro
*/
public Cliente(Integer id, String nome, String rg, Calendar dtNascimento, Calendar dtCadastro)
{
super();
this.id = id;
this.nome = nome;
this.rg = rg;
this.dtNascimento = dtNascimento;
this.dtCadastro = dtCadastro;
}
/**
* Metodo que retorna um atributo
* @return dtCadastro
*/
public Calendar getDtCadastro()
{
return dtCadastro;
}
/**
* Metodo que altera um atributo
* @param dtCadastro seta o atributo dtCadastro
*/
public void setDtCadastro(Calendar dtCadastro)
{
Calendar valorAntigo = this.dtCadastro;
this.dtCadastro = dtCadastro;
this.firePropertyChange(PROPERTY_NASCIMENTO,valorAntigo,this.dtCadastro);
}
/**
* Metodo que retorna um atributo
* @return dtNascimento
*/
public Calendar getDtNascimento()
{
return dtNascimento;
}
/**
* Metodo que altera um atributo
* @param dtNascimento seta o atributo dtNascimento
*/
public void setDtNascimento(Calendar dtNascimento)
{
Calendar valorAntigo = this.dtNascimento;
this.dtNascimento = dtNascimento;
this.firePropertyChange(PROPERTY_NASCIMENTO,valorAntigo,this.dtNascimento);
}
/**
* Metodo que retorna um atributo
* @return id
*/
public Integer getId()
{
return id;
}
/**
* Metodo que altera um atributo
* @param id seta o atributo id
*/
public void setId(Integer id)
{
Integer valorAntigo = this.id;
this.id = id;
this.firePropertyChange(PROPERTY_ID,valorAntigo,this.id);
}
/**
* Metodo que retorna um atributo
* @return nome
*/
public String getNome()
{
return nome;
}
/**
* Metodo que altera um atributo
* @param nome seta o atributo nome
*/
public void setNome(String nome)
{
String valorAntigo = this.nome;
this.nome = nome;
this.firePropertyChange(PROPERTY_NOME,valorAntigo,this.nome);
}
/**
* Metodo que retorna um atributo
* @return rg
*/
public String getRg()
{
return rg;
}
/**
* Metodo que altera um atributo
* @param rg seta o atributo rg
*/
public void setRg(String rg)
{
String valorAntigo = this.rg;
this.rg = rg;
this.firePropertyChange(PROPERTY_RG,valorAntigo,this.rg);
}
public String toString()
{
return nome;
}
}
Vcs notaram que minha classe Cliente herda de Model (da API do JGoodies), nao haveria um jeito fazer que meus beans nao façam herança da classe Model?
Quem puder me ajudar eu agradeço…