Pessoal, estou com uma dúvida, será q da forma como estou programando é uma má prática? Vejam o código bem simples:
public class Teste(){
public Component montaFormulario(){
JLabel a = new JLabel("Label um");
JLabel b = new JLabel("Label dois");
JTextField x = new JTexField(40);
JPanel panel = new JPanel();
panel.add(a);
panel.add(b);
panel.add(x);
return panel;
}
.
.
.
}
Bom Pessoal, minha dúvida é o seguinte:
Toda hora que executar esse classe ela sempre vai criar os JPanel com os componentes add a ele. É uma boa prática eu testar se eles são null ou não tem necessidade?
Vi um código parecido e fiquei pensando que talvez posso estar programando erroneamente, pois cada vez que a classe é executada um novo JPanel é criado.
Vc acabou de os criar, não em como ser null. não precisa fazer essa verificação.
Um código equivalente ao seu e mais limpo
public class Teste(){
public Component montaFormulario(){
JPanel panel = new JPanel();
panel.add(new JLabel("Label um"));
panel.add(new JLabel("Label dois"));
panel.add( new JTexField(40));
return panel;
}
}
[quote=inicjava]Certo! Mas seu eu quiser acessar os dados do JTextField depois não tem como, não é vd? Ou estou enganado?
[/quote]
De certa forma sim. Não é completamente correto acesar metodos como JTextField.getText(). É melhor acessar sempre os modelos dos componentes. No caso do JTextField é Document, no caso de outros componentes serão outros modelos.
Embora à primeira vista prático, manter uma referencia ao objeto visual vai-se tornar um problema lá na frente.
Se o seu programa é bem básico, tem poucas telas e as logicas não são muito dificies tudo bem, mas usar uma programação orientada a objetos , no swing, significa trabalhar com os modelos e não com os componentes gráficos em si.
Enfim, vc não é obrigado a manter uma referencia ao objeto gráfico se não quiser.
Esta é uma das maravilhas do Swing.