Olá!
Tenho uma aplicação que trabalha com jmenu, onde o mesmo tem 4 opções, sendo duas visíveis que tem como login e outra como localizar.
A ideia é que quando eu localizar algo as outras 2 opções (jmenu) apareçam na jMenuBar.
O código está estruturado de modo que o menuBar já tenha o jmenu3 e 4 e os mesmo estão como .setVisible(false).
A opção 2 trata-se de uma jinternalframe que fará a pesquisa, se encontrada a opção 3 e 4 tem que aparecer
tentei a opção abaixo no evento pesquisar mas não funcionou:
Form1 f1= new Form1();
f1.jMenu3.setvisible(true);
Tentei como:
Form1 f1= new Form1();
f1.jMenu3().setvisible(true);
E também não vai, oque preciso é de uma ideia de como resolver isso.
Essa forma eu não sei te falar, mas a que resolve para mim é o remove e o add. Sempre limpo os menus e conforme as permissões eu vou adicionando novamente os componentes no meu menu.
Consegui resolver colocando jmenu como static e alterando através de outro frame… deu certo!
Está errado , os componentes visuais de uma tela não devem ser static
.
PabloSantosDM:
tentei a opção abaixo no evento pesquisar mas não funcionou:
Form1 f1= new Form1();
f1.jMenu3.setvisible(true);
Tentei como:
Form1 f1= new Form1();
f1.jMenu3().setvisible(true);
Porque você cria um novo objeto do Form1
no evento?
Posta o código completo de suas classes que fica fácil te orientar.
Exato, mas funcionou perfeitamente…
Precisava que meu jMenu 3 aparece com base em uma consulta em outro frame… Ambos são arquivos forms separados… Sem o static nao era possível, o set visible de nada adiantava, nem enable nem nada, quando mudei para static resolveu imediatamente
Você acha que está perfeito.
Sabe pra que serve a palavra static
?
Porque você estava chamado o setVisible
no objeto errado, afinal toda vez você cria um novo objeto Form1
ao invés de usar o existente.
Se você tivesse postado o código completo, ficaria fácil te mostrar o erro.