Pessoal estou com o seguinte prolema, tenho um JFrame com menus que quando acionados chamo algumas Internal frame, quando clico mais de uma vez no mesmo menu ele chama á mesma internal frame deixando disponível no frame duas (ou tantas vezes q eu clicar no menu) de internal frame . Como faço pra aparecer somente uma :?:.
De uma pesquisada no padrão Singleton. Com ele, sua classe terá apenas uma instância em toda a aplicação, desta forma você consegue efetuar o controle desejado.
Ricado deu uma olhada no padrão Singleton e realmente eh mt bom sendo q tenho q ter tempo pra poder compreendê-lo melhor e passaaaar a utilizá-lo… mas como tô atrasado com o projeto queria algo mais próximo que o transvaal falou soh que ele não especificou onde fazer o q ele sugeriu, ficou meio vago!
Vc tem uma outra idéia :?: nem q seja um gatilho pra eu poder me adiantar :?:.
abços
obs: tenho 3 classes, a main como JFrame e duas JInternal frames que chamo quando aciono os submenus.
Você pode fazer o seguinte: quando você chamar o JInternalFrame você verifica se ele está visível, utilizando o método setVisible(), caso seja verdadeiro você não abre o JInternalFrame, somente o torna selecionado. Caso o setVisible() seja false você manda abrir o JInternalFrame.
Esta é uma solução mais simples. Porém quando você tiver um pouco mais de tempo aconselho você a utilizar o padrão singleton, desta forma seu código se tornará mais simples e legível.
Estou com o mesmo problema…
Até consigo impedir de abrir mais de uma janela, porém qdo eu fecho o jInternalFrame e vou no menu tentar abrir de novo ele não abre.
Preciso de ajuda urgente… :?:
Segue abaixo código:
if (frmCancelarVenda==null){
frmCancelarVenda = new FrmCancelarVenda();
desktop.add(frmCancelarVenda);
}
frmCancelarVenda.setVisible(true);
try {
frmCancelarVenda.setSelected(true);
} catch (Exception e){}
Olá pessoal, Ricardo fiz dessa forma que vc falou e não abre várias instâncias, agora ele abre somente uma vez(somente) cada internal frame, quando vou tentar abrir ela novamente não vai…
Pq :?:
Aconteceu isso comigo uma vez. Eu custei descobrir, e quando fui ver, tinha um erro de lógica no programa que estava fazendo eu chamar addActionListener() duas vezes nos ítens do menu. Talvez é isso que está acontecendo com vc tb.