Esse problema é mais comum do que parece, principalmente porque o java não permite herança múltipla.
Assim, qualquer framework que é usado junto com o JGoodies e exige dos objetos algum tipo de herança ou simplesmente que eles sejam POJOs, complica a situação do código.
Uma solução razoavelmente tranquila é criar uma classe para o POJO (atributos + getters + setters) e outra classe que empacota esse POJO, criando métodos parecidos com o do POJO, mas que fazem outras coisas também.
Exemplo:
public class Aluno {
private String nome;
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
}
O POJO acima deve ser usado pela camada de persistência.
Agora precisamos de uma classe para a GUI (JGoodies):
public class AlunoModel extends Model {
private Aluno aluno;
public AlunoModel(Aluno aluno) { this.aluno = aluno; }
public String getNome() { return aluno.getNome(); }
public void setNome(String nome) {
String old = aluno.getNome();
aluno.setNome(nome);
this.firePropertyChange("nome", old, nome);
}
}
Não é uma solução perfeita, mas resolve bem o problem.
A principal dificuldade está na manutenção dos dois conjuntos de métodos que acessam o POJO.