Gerando código!

Olá pessoal, estou fazendo um trabalho de Eng de Software, e tenhos algumas dúvidas aqui:

É o seguinte, o trabalho é uma mini IDE. Tem uma funcionalidade que não estou conseguindo implementar, que é a seguinte:

Terá um JButton “Inserir classe”, se ele for clicado abrirá uma janela com 3 tabs, “Classe”, “Atributos” e “Métodos”, aí tem vários Labels com JTextFields, eu preciso preciso pegar esses valores que foram inseridos na JTextField e gerar o código da classe em Java.

É + ou - assim q funciona:

Na Primeira Tab o user entra com as informações da Classe, que é o seu nome, algum comentário se houver, se é abstrata, private, protected ou public, na Segunda aba são as informações das variáveis, que são nome, tipo, valor e visibilidade, e na Terceira será as informações dos métodos, essas sim são um pouco mais complexas, que são elas, nome, tipo, visibilidade e informação dos parâmetros.

A partir daí tenho que gerar o código da classe, a partir das informações inseridas nas JTextFields (tem tbm JCheckBox e JComboBox), como eu pego pego esses valores inseridos e insiro o texto na JTextArea principal? Como posso fazer isso, criando uma classe que recebe esses valores, joga pro meu layout (texto estruturado que irei jogar na JTextArea) dinamicamente?

Não sei de que forma farei isso, tbm preciso gerar o código organizado tipo:

nome da classe com visibilidade
{
// variaveis

// métodos
}

Parece simples mas pra fácil não serve, já faz algumas horas que estou procurando a melhor forma de fazer isso e não acho, pra dizer a verdade não achei nem a pior forma :stuck_out_tongue:

Fico no aguardo, e sem + delongas, abraços a todos!!!

Se alguém conhece a ferramenta DIA, na parte de UML quando se cria uma classe, clicando nela abre uma janela para entrar com as informações da classe, operações e atributos, aí a ferramenta gera o modelo da classe em UML com as informações que foram passadas já inseridas, no meu caso é a mesma coisa, só que preciso gerar o código da classe, sacaram?

O link do DIA é http://www.gnome.org/projects/dia/

Era isso!!!

engenharia de software é complicado, pois sempre se destina a ajudar o usuario em todos os aspectos. modelo de tarefa, interface abstrata, interface concreta, RUP…

esse lance de gerar codigo deve ser isso, pra quem nao sabefazer a classe, so insere certas informacoes e ai é gerado o codigo pela sua implementacao…deve ser isso seu trabalho né?

cara, cada textfield, checkbox, combo e etc dá pra pegar o valor inserido nele, normalmente por um get.

eu nao sou muito bom nao, mas baseado que voce sabe como é a estrutura de uma classe, voce pode guardar cada informacao em uma variavel, e ir montando o codigo, onde digamos o codigo é uma string e cada informacao vai sendo colocada em seu lugar, tipo desse jeito:

“public class “+nomeClasse.getText()+” {\n”

“public void “+nomeMetodo.getText()+”{\n”

e assim vai…vai depender dos tipos de informacao que serao inseridas e ai tu vai montar a classe do jeito que voce precisar

agora, se tem alguma ferramenta que gera codigo, eu nao sei dizer. ainda mais pq dentro de um metodo, como que vai ter codigo gerado? no maximo dá pra declarar o metodo e tal…fazer o codigo quem faz é aquele que sabe o que ta fazendo

Sim, realmente, a implementação do método não será feita, imagina se tivesse que fazer… :cry: nem tem como…

Tenho q gerar algo desse tipo assim:

class Carro
{
// Atributos da classe

    int id,
String modelo;
String marca;
String cor;
double preco;

    // Métodos da classe

public double quantoCusta()
{
	// Método
}

public double precoPrestacao()
{
	// Método
}

}

Só isso, o q tah pegando eh a forma como vou montar, ateh pq terah a tela para entrar com os dados do método, e podem ser vários métodos, antes de jogar na textarea, o cara pode fazer um metodo e alterar, excluir, tipo assim, vai inserindo os metodos, eles vao aparecendo numa JList por ex.(terei q ver como vou poder manipular eles quando estiverem na lista), soh q pode excluir, inserir, clicar 2 vezes aih abre a janela de edição para alterar, ateh o momento q jogo tudo pra TextArea quando o user der OK, aih vai classe, atributos e metodos pra lah, tipo essa classezinha acima…