Como estruturar codigo de aplicaçao java swing

13 respostas
swingjava
M

Boas,
Venho aqui pois tenho a seguinte duvida: Como estruturo o codigo com java swing? Já vi diversos materiais de design patterns, solid, etc… Mas quando vou criar aplicações java swing o codigo fica sempre “feio” e um pouco confuso. Gostava de saber como resolver inconvenientes como o seguinte exemplo:

public void turnModoEdicao() {
    if (this.edicao){
        if (nomeField.getText().trim().isEmpty() || nomeProfessorField.getText().trim().isEmpty()){
            return;
        }
        this.disciplina.setNome(nomeField.getText());
        this.disciplina.setNomeProfessor(nomeProfessorField.getText());
        this.disciplina.setEmailProfessor(emailProfessorField.getText());
        this.dao.update(this.disciplina);
        preecherLabel();
    }else{
        nomeField.setText(this.disciplina.getNome());
        nomeProfessorField.setText(this.disciplina.getNomeProfessor());
        emailProfessorField.setText(this.disciplina.getEmailProfessor());
    }
    
    nomeField.setVisible(!this.edicao);
    nomeProfessorField.setVisible(!this.edicao);
    emailProfessorField.setVisible(!this.edicao);
    
    edicao = !edicao;
}

13 Respostas

J

Nao existe código usando Swing que nao fique feio. Data-binding é na unha. Terá que achar alguma solução de terceiro ou criar uma engenhoca caseira pra melhorar isso.

M

JavaFX tambem possui esse problema?

M

JavaFX é clean

P

Comente seu código e use indentação, utilize da forma que achar conveniente a você

J

JavaFx é melhor do que Swing nesse aspecto, mas nao é uma tecnologia muito adotada, ficou estável num tempo em que desktop já estava caindo em desuso. Se postar seu objetivo, talvez nem seja a melhor solucao usar desktop.

M

Neste caso em especifico estou a fazer um programa com foco em organizar coisas relacionadas com a escola (agenda de testes, resultados, media final, trabalhos para casa, etc), segue um print:

Mas tambem tenho em mente um projeto de Hotel Management que estava a pensar fazer em swing

P

É bacana, mas não se atenha apenas ao netbeans, pratica um pouco no eclipse usando swing.
e sempre fique de olho aqui:
https://docs.oracle.com/javase/8/docs/api/

J

Esse tipo de aplicação hoje seria feito para web browser ou app mobile.

M

Obrigado pela dica!

Certo, mas antes de aprofundar nas apps moveis queria ficar com um conhecimento solido em java Desktop. No que diz respeito ao software de Hotel Management JavaFX é a melhor opçao correto?

P

Swing,
faz uma JFrame, uns menu e pronto, tá lá, essa parte de UI, UX depois você trabalha

J

Voce precisa definir seu objetivo.

Para aprendizado em relação ao mercado desktop Java, é melhor aprender Swing, pois existem muitos legados. JavaFx é pouco adotado.

Para atender demandas reais é outra história, precisa atender o Negócio da melhor forma e nao a tecnologia escolhida.

P

o FX substituirá o swing, mas isso vai demorar, acredito que bastante

J

Para desktop onde o cliente usa Windows, C# é muito mais limpo e produtivo do que Java.

Criado 20 de novembro de 2018
Ultima resposta 20 de nov. de 2018
Respostas 13
Participantes 4