Galera,
será q vcs podem me ajudar? estou desenvolvendo um aplicativo desktop, onde através de um jmenu são disparados eventos q abrem um determinado jinternalframe (criei um desktoppanel onde a internalframe é adicionada). O problema é o seguinte: Ao abrir um internalframe ficou perfeito, o problema eh quando abro outro,quando chamo outra opção do menu ele abre um novo internlaframe e sobrescreve o anterior, ou seja, se eu tiver no meio de um cadastro e quiser fazer uma consulta, ja era meu cadastro.
1 - Tem alguma forma de manter ativo varios jinternalframes ao mesmo tempo???
2 - Existe alguma opção de colocar um botao de fechar e de minimizar os internalframes?
zoren,
criei um desktoppane na classe controle e quando o usuario clicar em algum jmenuitem o sistema abre um jinternalframe através do comando “meudesktop.add (frame)”.
fala galera…blz? to quebrando minha cabeça ainda…consegui ativar os botoes do jinternalframe. porem ainda estou com o mesmo problema. se abro outro jinternalframe ele sobrescreve o anterior e perco as informações. alguem teria alguma dica de como abrir varios jinternlaframes simultaneamente.? to pensando nisso pois no meio de um registro de vendas se o usuario quiser consultar o estoque nao precisa fechar a tela de cadastro. Obrigado galera
public class ControlePrincipal {
private JFrame tela;
private Container desktopPane;
public ControlePrincipal (JFrame tela){
this.tela = tela;
}
public void executar(String comando)throws Exception{
if (comando.equals("sair")){
System.exit(0);
}
if (comando.equals("ContProduto")){
JDesktopPane desktop1 = new JDesktopPane();
TelaProduto t = new TelaProduto();
desktop1.add(t);
desktop1.setOpaque(false);
tela.setContentPane(desktop1);
t.setVisible(true);
t.setClosable(true);
}
if (comando.equals("RegVendas")){
JDesktopPane desktop2 = new JDesktopPane();
TelaRegVendas t = new TelaRegVendas();
desktop2.add(t);
desktop2.setOpaque(false);
tela.setContentPane(desktop2);
t.setVisible(true);
t.setClosable(true);
}
}
se vc criar ele de novo e adicionar, o antigo vai desaparecer
if (comando.equals("ContProduto")){
JDesktopPane desktop1 = new JDesktopPane(); // <-- essa linha tem que ir no construtor
TelaProduto t = new TelaProduto();
desktop1.add(t);
desktop1.setOpaque(false);
tela.setContentPane(desktop1);
t.setVisible(true);
t.setClosable(true);
}
if (comando.equals("RegVendas")){
JDesktopPane desktop2 = new JDesktopPane(); // <-- essa aqui está sobrando, vc apaga ela
TelaRegVendas t = new TelaRegVendas();
desktop2.add(t);
desktop2.setOpaque(false);
tela.setContentPane(desktop2);
t.setVisible(true);
t.setClosable(true);
}
depos dessas modificações, é só vc adicionar os dois JInternalFrame no mesmo JDesktopPane
blz, kra entendi…Era assim que eu estava fazendo antes.
só mais uma dúvida. Ao abrir o proximo jinternalframe, ele se coloca na frente do anterior, onde inclui nele um botao de fechar “t.setClosable(true)”. Ao fechá-lo, como vc me disse, o anterior ja está criado, porém não aparece automaticamente. Será que tá faltando ainda algum comando?
Exemplo:
imagina dois jinternalframes abertos um acima do outro. Fecho oq ta na frente e aparece oq estava por tras.
Kra. Obrigado mesmo.
[code]
JDesktopPane desktop1 = new JDesktopPane();
if (comando.equals(“ContProduto”)){
TelaProduto t = new TelaProduto();
desktop1.add(t);
desktop1.setOpaque(false);
tela.setContentPane(desktop1);
t.setVisible(true);
t.setClosable(true);
}
if (comando.equals(“RegVendas”)){
TelaRegVendas t = new TelaRegVendas();
desktop1.add(t);
desktop1.setOpaque(false);
tela.setContentPane(desktop1);
t.setVisible(true);
t.setClosable(true);
}
Isso. Imagina uma tela de cadastro. No meio do cadastro, desejo realizar uma consulta. Chamei a tela de consulta. Após a consulta, fecho essa janela. A tela que deverá estar ativa é a do cadastro q tinha ficado em segundo plano, para q eu continue o meu cadastro.
Mas não é isso o que está acontecendo. Quando fecho esta segunda tela, a anterior não aparece. Crei q ela deve estar ativa e falta algum comando só pra mostrar ela…será?