Como deixar apenas uma janela aparecendo

Ola,

Eu tenho um programinha com varias telas que podem ser abertas, todas sendo JFrame’s. O fato é que enche a “Barra de Tarefas” do SO (qq um, Windows, Linux) com aquele monte de botoes dos JFrame’s. E o pior é que o usuario pode ficar clicando de um lado pra outro, as vezes sem querer, e se perde nas telas. Tem como aparecer apenas um botao de janela na “Barra de Tarefas”?

já pensou em usar um JDesltopPane e usar JInternalFrame ?

ficara só uma aplicação lá em baixo na barra e varias janelas dentro dela… :smiley:

Nao fica esquisito isso? Pois tenho o segte: um menu principal e varios JFrames de telas de cadastro. Como ficaria este monte de Frames dentro do menu principal?

Na verdade, se pelo menos conseguisse fazer o JFrame MODAL, ja seria menos pior, apesar que continuaria a poluicao na Barra de Tarefas…

eu nao acho esquisito… o JDesktopPane eh bastante interessante pro seu caso. e, ao inves de usar JFrames vc usaria JInternalFrames

Realmente o JDesktopPane é muito interessante o sistema da empresa estamos fazendo ele assim senao abririam 984625982165826 de janelas… :lol:

e está ficando muito bom…

Eu implementei o menu principal com o JDesktopPane dentro assim:
public class JPrincTab extends JFrame {
JDesktopPane desktop;

public JPrincTab(String titulo, …) {
super(titulo);
desktop = new JDesktopPane();
setContentPane(desktop);
getContentPane().setLayout(new GridBagLayout());
setExtendedState(JFrame.MAXIMIZED_BOTH);
setLocationRelativeTo(null);

}

}

Em seguida, ao chamar as telas de cadastro, ao inves de dar o frame.show(), eu criei um metodo frame.showframe() assim:
public class JFrameTab extends JInternalFrame implements ActionListener {
public void showframe(JPrincTab princtab, boolean mdi) {
try {
if (!mdi)
princtab.getdesktop().removeAll();
princtab.getdesktop().add(this);
setSelected(true);
show();
} catch (Exception e) { e.printStackTrace(); }
}
}

O fato é que esta funcionando tudo dentro do frame principal, ou seja, resolveu meu problema inicial… contudo, quando eu arrasto a janela, para qualquer lugar, de uma hora para outra reinicia a maquina. Estou rodando a aplicacao com JDK 1.4.2_02 por dentro do NetBeans 3.6. Sera que este negocio de arrastar janelas tem da problema no DesktopPane ou é o meu codigo que esta deixando o Java maluco?

Detalhe: eu coloquei aquele removeAll() porque eu quero que apareca apenas uma janela por vez para o usuario. Esta é a melhor forma de fazer?

isso nao seria um caso para um novo ‘Topico’ ? :smiley:

Existem topicos antigos ae que falam de JInternalFramel modal. Mas acho qd se usa JInternalFrame já tem a ideia de poder mexer com varias janelas ao mesmo tempo.Voce poderia usar JDialog.
Tendo uma JFrame principal que chamava os JDialogs modal.