Estou começando em java e gostaria que me explicasse o por que do código
if(clientes==null){
clientes = new clientes();
clientes.setVisible(true);
}else{
clientes.setVisible(true);
clientes.setState(JFrame.Normal);
}
ao clicar no JMenuItem Clientes ele cria uma tela clientes, mas se eu simplesmete colocar clientes.setVisible(true);, funciona do mesmo jeito.
Pq devo fazer essa condição? Agradeço!
Por favor, ao postar tópicos:
- Não deixe o título em letras maiúsculas;
- Use a tag code para formatar seus códigos. Se não sabe fazer isso, leia aqui.
- Dê um título descritivo, evitando falar o óbvio. Afinal, se você não tivesse dúvida, nem teria aberto o tópico. E se não fosse de Java Básico, você não teria aberto no fórum de Java Básico.
Quanto à sua dúvida:
Sempre em algum momento você deve fazer
clientes = new clientes();
Se você está podendo tirar esse if dali, é porque já fez isso em algum outro lugar.
O papel daquele if é o de permitir que você faça o new no último momento possível, ou seja, na primeira vez que a pessoa clicar no botão de abrir o formulário.
Assim, você evita consumir memória e tempo de processamento enquanto o formulário não for efetivamente usado.
Isso é chamado de lazy initialization (inicialização preguiçosa).
Seu código também está repetitivo à toa. Você pode reescreve-lo assim:
if(clientes==null){
clientes = new clientes();
}
clientes.setState(JFrame.Normal);
clientes.setVisible(true);