Como deixar apenas uma janela aparecendo

8 respostas
E

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”?

8 Respostas

keller

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:

E

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…

sergiolopes

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

keller

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

e está ficando muito bom…

E
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?

E

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

keller

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

Hempx

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.

Criado 1 de outubro de 2004
Ultima resposta 6 de out. de 2004
Respostas 8
Participantes 4