[RESOLVIDO] Melhorar legibilidade do codigo numa aplicação swing  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

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

This message was edited 1 time. Last update was at 10/02/2012 12:12:40


Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

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.

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

romarcio wrote: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?

Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

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

This message was edited 1 time. Last update was at 06/02/2012 14:24:22


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

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.

This message was edited 1 time. Last update was at 06/02/2012 14:33:23


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

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.

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

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?

Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

lucas_guj wrote: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/)

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

romarcio wrote: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.


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

[]'s

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

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?

Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

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

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

davidbuzatto wrote:
romarcio wrote: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.


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.

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

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?

Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
InicianteJavaHenrique
GUJ Ranger
[Avatar]

Membro desde: 16/02/2011 12:20:00
Mensagens: 785
Localização: São Vicente - SP
Online

lucas_guj wrote:...vou tentar fazer outra calculadora... Aplicativos simples como esses precisam de documentos de requisitos e modelagem UML?


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

lucas_guj wrote:...vou tentar fazer outra calculadora... Aplicativos simples como esses precisam de regras de negocio?


Sempre, todo e qualquer software, aplicativo, sistema.

flw

Jogo de Xadrez com I.A feito em Java 2D. - HFS Softwares


"Felizes os Tópicos que estavam aqui neste dia: 07/12/2008, neste horário: 22:11:56 e neste local." - Henrique Ferreira da Silva


"O negócio de software é binário, você é 1 ou 0, vivo ou morto." - Filme Ameaça Virtual


"Existem 10 tipos de pessoas no mundo: as que entendem binário e as que não entendem."


"Compartilhar conhecimentos é uma forma de alcançar a imortalidade." - Dalai Lama


"Aquele que pergunta é um tolo por cinco minutos, mas aquele que não pergunta permanece um tolo para sempre." - Provérbio Chinês


"O topo da inteligência é alcançar a humildade." - Textos Judaicos


"Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação." - Albert Einstein



/**
*
* Programador Java
* @author Henrique Ferreira da Silva
* @since Julho/2010
*
*/
lucas_guj
JavaGuru
[Avatar]

Membro desde: 18/05/2011 15:16:57
Mensagens: 240
Localização: Rio de Janeiro
Offline

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.

Use a Cabeça Java - 100%
Java Como Programar 8° Edição - 49%

De que adianta sonhar, se você não acredita que pode realizar?
---------------------------

Automação Industrial e Outros Servicos
Hospedagem de Sites
[WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team