Fórum Ativar menu do form pincipal quando o mesmo estiver como setvisible(false) #517869
25/04/2015
0
Para que o usuário não abra duas vezes o mesmo form, eu desativei (menu.setVisible(false) ) o menu do form principal ao abrir algum formulario (que por sua vez é um jframeinternal). o problema é que nao sei como ativar reativar (menu.setVisible(true)) o menu no form principal, quando o usuário fecha o jframeinternal e retorna para o menu principal. Pensei em colocar no botão ao fechar do jframeinternal, mas nao sei como fazer isso. Alguem pode me ajuda ?
Silvio Silveira
Curtir tópico
+ 0Posts
25/04/2015
Ronaldo Lanhellas
Gostei + 0
25/04/2015
Silvio Silveira
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
Cadastro_Maquina maq = new Cadastro_Maquina();
maq.setLocation(280, 50);
desk.add(maq);
maq.setVisible(true);
jm.setVisible(false); // jm é o nome que eu dei para o componente "menu"
}
e no botao sair do meu jfrominternal para retornar para o menu principal fiz assim:
private void jSairActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
// e é aqui , na hora de sair e retornar para o menu principal, é que eu preciso que o meu i menu (jm) ficasse visivel de novo.
}
Gostei + 0
25/04/2015
Ronaldo Lanhellas
public void enableJmComponent(boolean enable){
jm.setVisible(enable);
}
E dentro do seu jfrominternal faça assim:
meuFormPrincipal.enableJmComponent(true);
Gostei + 0
25/04/2015
Silvio Silveira
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
Cadastro_Maquina maq = new Cadastro_Maquina();
maq.setLocation(280, 50);
desk.add(maq);
maq.setVisible(true);
enableJmComponent(false); // chamei o metodo
}
public void enableJmComponent(boolean enable){ // crie o metodo como descreveu
jm.setVisible(enable);
}
mas no jframeinternal, ao retornar para o principal, nao está deixando o menu visivel. Eis o codigo do botao sair do jframeinternal:
private void jSairActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
Principall pr = new Principall();
pr.enableJmComponent(true); // tive que fazer assim, pois se informasse 'Principall' ele nao puxava o 'enableJmComponent(true)'.
}
Gostei + 0
25/04/2015
Ronaldo Lanhellas
Tenta assim:
Principal.this.enableJmComponent();
Gostei + 0
25/04/2015
Silvio Silveira
Gostei + 0
25/04/2015
Ronaldo Lanhellas
private void jSairActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
//Principall pr = new Principall();
Principal.this.enableJmComponent(true);
}
Gostei + 0
25/04/2015
Silvio Silveira
Gostei + 0
25/04/2015
Ronaldo Lanhellas
Na hora de criar um seu Principall, ( imagino que na iniciação do seu sistema ), guarde a referência do objeto em um atributo estático. Veja:
public class Principall{
private static Principall instance;
public static Principall getInstance(){
return instance;
}
}
lembrando que a variável "instance" deve conter o objeto Principall que foi criado da primeira vez. O modelo acima é um padrão de projeto chamado Singleton.
Então no seu interno, vocÊ fará:
Principall.getInstance().enableCompoment(true);
Gostei + 0
25/04/2015
Silvio Silveira
Gostei + 0
25/04/2015
Ronaldo Lanhellas
Gostei + 0
25/04/2015
Ronaldo Lanhellas
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)