[RESOLVIDO] Melhorar legibilidade do codigo numa aplicação swing

14 respostas
lucas_guj

Fala galera, é o seguinte comecei a estudar a GUIs do java, lendo o cap do Deitel juntamente com o tutorial do site: http://netbeans.org/kb/docs/java/gui-functionality.html fiz o aplicativo que tem no link uma simples calculadora de somar, super simples, soma dois numeros, limpa as caixas de texto e sai. Só que um aplicativo tão simples o código ficou UMA GIGANTESCA BAGUNÇA. Quando faço outros exemplos do livro na mão, o código fica muito mais limpo, é demorado mais fica muito limpo em comparação ao gerado pela IDE.

Minha dúvida é: Tem algum jeito de eu melhorar isso no programa ou de algum outro jeito. Fazer o código ficar claro, o melhor possível para mim?

Abraços

14 Respostas

romarcio

Esse é um problema que muitos reclamam quando se faz uma app Swing pelo gerador Matisse do Netbeans.

Não que seja problema, mas fica todo aquele código não editável exposto na classe. Se for usar o gerador, não vai poder fugir disso, pelo menos não no Netbeans.

lucas_guj

romarcio:
Esse é um problema que muitos reclamam quando se faz uma app Swing pelo gerador Matisse do Netbeans.

Não que seja problema, mas fica todo aquele código não editável exposto na classe. Se for usar o gerador, não vai poder fugir disso, pelo menos não no Netbeans.

Pois é. Quer dizer que não tem para onde correr?

davidbuzatto

Siga os exemplos do Deitel e faça na mão.

Quando for usar editor de interfaces do Netbeans, você não deve se preocupar com o código gerado, afinal ele é GERADO. Você não precisa entendê-lo. O gerenciador GroupLayout, usado pelo Matisse, é feito para geradores e não para humanos. Se precisar fazer alguma customização, use a aba code (código) do editor, ali na aba de propriedades.

[]'s

maior_abandonado

ai você tem que escolher, ou você gera código limpo mas demora um pouco mais para codificar, ou usa a ferramenta e vai ter um código que não é assim digamos… para humanos…rs

se você optar pelo código limpo, é recomendado sempre utilizar algum layout do swing para evitar alguns problemas que você tem quando não usa, nesse caso ja me recomendaram usar o miglayout: ( http://www.miglayout.com/ ) parece ser muito mais facil de trabalhar que outros.

se você prefere usar a ferramenta, mais especificamente o framework de construção das telas, neste caso o matisse, você também poderá com ele mecher em partes importantes específicas do código, por exemplo onde os componentes são criados, colocar algum código para executar antes ou depois disso por exemplo, a unica coisa que não vi uma forma de fazer isso direto no código é o posicionamento dos componentes (aliás eu acharia isso uma péssima idéia). Criar uma aplicação com o matisse e depois querer dar manutenção nela sem o matisse, direto no código é uma péssima ideia também, aconselho a dar manutenção em software feito com o matisse continuando usando o matisse, senão é melhor nem usá-lo. Outro detalhe também, mesmo que você opte por essa opção, ainda recomendo que você estude razoavelmente swing sem o matisse, lembro que quando estava trabalhando com aplicação desktop, as vezes se precisava mecher com algumas coisas que dependiam de conhecimento da api swing do mesmo jeito, mesmo usando o matisse, é bem importante.

editando… uma ultima dica dada a quem está começando, pelo amor de deus, não coloque regra de negócio nas classes de seus frames, existem vários tópicos aqui no guj sobre separação em camadas, inclusive usando swing, de uma pesquisada nisso também.

romarcio

A ide Intellij Idea tem um gerador em que sua classe fica limpa.
Todo código gerado por ele é colocado em um arquivo que fica abstraído para você.
Porém é um pouco mais difícil ajeitar os componentes na tela em relação ao netbeans.

lucas_guj

Hmm. Acho que entendi. Quando voce diz código limpo voce quer dizer o q? Sobre regras de negócio nem sei o que é ainda, vou pesquisar. Então eu devo decidir ou eu uso o matisse ou não uso, porque usar o matisse e tentar alterar certas partes no código não é aconselhavel?

Romarcio, nunca ouvi falar dessa IDE, vou pesquisar, qual IDE voce usa?

romarcio

lucas_guj:
Hmm. Acho que entendi. Quando voce diz código limpo voce quer dizer o q? Sobre regras de negócio nem sei o que é ainda, vou pesquisar. Então eu devo decidir ou eu uso o matisse ou não uso, porque usar o matisse e tentar alterar certas partes no código não é aconselhavel?

Romarcio, nunca ouvi falar dessa IDE, vou pesquisar, qual IDE voce usa?

Por exemplo, quando você cria um interface gráfica com o Matisse do Netbeans, toda a configuração dos componentes, que são setadas no gerador, são colocadas na classe. Porém você não pode alterar esse código fonte gerado, só pode alterar as configurações no próprio gerador.
No Idea, esse código não vai para a classe, já que você não vai poder altera-lo, a não ser pelo gerador, não tem porque ele ir para a classe. A unica coisa criada na classe são os atributos referentes a cada componente da interface gráfica (private JLabel label; private JTextField textField; …).

Eu comecei profissionalmente no Java usando o Idea, e é muito difícil parar de usar ele. As vezes mexo no Netbeans ou no Eclipse, mas geralmente trabalho com o Idea. (http://www.jetbrains.com/idea/download/)

davidbuzatto

Na verdade, existe um arquivo separado no NetBeans tbm. Se não me engano a extensão é .form.
Crie um projeto e veja.

[]'s

lucas_guj

Tem mt diferença da versão free para a full? Porque se não tiver eu vou tentar ver e usar esse IDEA se não conseguir usar volto para o netbeans mesmo. O net beans minimiza apenas o código gerado, de qualque forma atrapalha. E mais uma pergunta. Quanto as importações de pacote, porque no netBeans ele faz a importação na hora que usa, é melhor assim ou melhor importar logo tudo de uma vez no começo? Obrigado pela ajuda até agora…E um amigo aqui do forum cleversonc6 falou para eu ter cuidado para não programar por eventos como Delphi. O que voces acham disso?

romarcio

Tem bastante diferença em relação ao plugins.
Nessa página mostra a diferença: http://www.jetbrains.com/idea/index.html

romarcio

Na verdade, existe um arquivo separado no NetBeans tbm. Se não me engano a extensão é .form.
Crie um projeto e veja.

[]'s

Também tem mesmo, tinha esquecido.

lucas_guj

Obrigado pela ajuda até agora. Vocês não conhecem nenhum tutorial explicando sobre organização no código quando for programar usando swing? Depois que eu entender bem aqui sobre swing vou tentar fazer outra calculadora só que um pouco mais completa, com multiplicar, dividir, somar, subtrair, apagar ultimo numero, apagar tudo e só. Vou tentar programar no NetBeans primeiro. Aplicativos simples como esses precisam de documentos de requisitos e regras de negocio e modelagem UML?

InicianteJavaHenriqu

Na verdade não. Mas, como é para aprendizado é uma boa ideia fazê-los.

Sempre, todo e qualquer software, aplicativo, sistema.

flw :thumbup:

lucas_guj

Ok. Rumo ao trabalho. Vou esperar se alguém tem mais algumas dicas para me dar e depois vou colocar resolvido. Obrigado a todos que me ajudaram.

Criado 6 de fevereiro de 2012
Ultima resposta 8 de fev. de 2012
Respostas 14
Participantes 5