[quote=diego_qmota]Oi Anime,
Eu gostaria de uma solução que na realidade já criasse o JPanel do formulário (que você mencionou). Sem eu precisar criar e inserir os componentes.
Vou mostrar um exemplo hipotético:
A classe Cliente (da entidade) provavelmente deveria usar Annotations para descrever os campos que receberiam o valor dos atributos (ou se não tivessem anotações, seria o JTextField por default).
public class Cliente {
@CampoForm (tipo="JTextField", tamanho=100, document="Texto")
private String razaoSocial;
...
}
Existiria uma classe Factory que gera o formulário (por ex: FormFactory). Ela receberia a classe da entidade (Classe Cliente) como argumento do método FormFactory.createNewForm e me retornasse um JPanel de formulário.
JFrame janela = new JFrame();
janela.setLayout( new BorderLayout() );
//Criação de formulário
JPanel painelPrincipal = FormFactory.createNewForm( Cliente.class );
janela.add( painelPrincipal, BorderLayout.CENTER );
...
O formulário gerado poderia receber um objeto Cliente para editar (e retornar esse objeto editado também) ou já criar um novo objeto na inicialização. O formulário deveria já conter todos os controles para editar, salvar e lidar com os valores dos atributos.
Para listas de objetos, poderia gerar um formulário CRUD com controles Adicionar, Excluir, Editar… Para um objeto isolado, somente os campos para editar um objeto somente.
Criando formulário para novo objeto Cliente:
//FormFactory.createNewForm( Cliente.class ) retornaria JPanelForm que estende JPanel
//Cria um novo objeto Cliente na inicialização do formulário
JPanelForm <Cliente> form = FormFactory.createNewForm( Cliente.class );
Editando um objeto Cliente:
Cliente cli = new Cliente ("Rox Ltda");
JPanelForm <Cliente> form = FormFactory.createNewForm( Cliente.class, cli );
//criação de janela, incorporação de Jpanel, etc...
...
Cliente cliEditado = form.getEntity(); //retorna o objeto cli alterado
Mas esses exemplos são hipotéticos. Gostaria de saber se uma solução parecida existe de verdade… 
[/quote]
Bem eu faço da seguinte forma. Eu possuo minhas anotações na qual eu marco qual campo eu quero criar no meu formulário, parecido com sua anotação @CampoForm. Eu possuo uma classe que cria os camponentes do formulário baseado nas anotações. Um outra alternativa que também da certo e você criar um banco de dados com as configurações de seus campos.