Acoplar janelas na GUI

4 respostas
G

Boa tarde a todos!

Pessoal, já fiz alguns pequenos aplicativos em java para projetos da faculdade e até para serem usados com algumas coisas, porém, eles são todos constituídos de JFrame’s, quando o usuário vai abrindo janelas, elas não se acoplam em uma só, e isso é uma tristeza, sem contar que bagunça qualquer coisa. Eu ví que existe o JInternalFrame e o JDesktopPane, porém não sei como usá-los e também lí em alguns locais que isso não está sendo mais usado devido a uma série de desvatagens que os mesmos trazem consigo, então, resolvi abrir esse tópico.

Alguém pode me dar alguma dica de como/o que fazer?

Obrigado!

4 Respostas

Alexandre_Saudate

Não entendí muito bem sua pergunta… você quer dizer que quer fechar uma janela quando quiser abrir outra, é isso? Se for, os frames têm um método chamado dispose(), é só usar…

Caso você queira uma interação mais “direta”, também existe um controlador de layout chamado CardLayout, só usar.

[]´s

G

asaudate:
Não entendí muito bem sua pergunta… você quer dizer que quer fechar uma janela quando quiser abrir outra, é isso? Se for, os frames têm um método chamado dispose(), é só usar…

Caso você queira uma interação mais “direta”, também existe um controlador de layout chamado CardLayout, só usar.

[]´s

não, não, é o seguinte
a aplicação tem um JFrame principal, dai quando o usuário vai clicando nos menus, e novos JFrames vão sendo abertos, pra cada JFrame, é criado “sua própria janela”, mas eu queria que todas as janelas ficam centradas só no frame principal, pra tipo assim, na barra do windows só ficaria a janela principal do aplicativo, mesmo com outros frames abertos, e acontece justamente o contrário, pra cada frame, abre uma nova janela na barra do windows.

Alexandre_Saudate
Gernan:
asaudate:
Não entendí muito bem sua pergunta... você quer dizer que quer fechar uma janela quando quiser abrir outra, é isso? Se for, os frames têm um método chamado dispose(), é só usar...

Caso você queira uma interação mais "direta", também existe um controlador de layout chamado CardLayout, só usar.

[]´s

não, não, é o seguinte
a aplicação tem um JFrame principal, dai quando o usuário vai clicando nos menus, e novos JFrames vão sendo abertos, pra cada JFrame, é criado "sua própria janela", mas eu queria que todas as janelas ficam centradas só no frame principal, pra tipo assim, na barra do windows só ficaria a janela principal do aplicativo, mesmo com outros frames abertos, e acontece justamente o contrário, pra cada frame, abre uma nova janela na barra do windows.

Tente assim, então:

JFrame f1 = new JFrame("App") ;
		f1.add(new JLabel("teste"));
		f1.pack();
		f1.setVisible(true);
		
		
		JDialog dialog = new JDialog(f1);
		dialog.add(new JLabel("teste2"));
		dialog.pack();
		dialog.setVisible(true);

O chato é que o JDialog só minimiza ou maximiza junto com o Frame (ou, pelo menos, eu não achei nada que assim o fizesse). Mas, pelo que eu entendí , não chega a ser um requisito pra você, certo?

[]´s

Marck

Olá!

Dentro do JFrame, coloque um JDesktop. Dentro do JDesktop, coloque JInternalFrame’s.
Todas as suas telas deixaram de ser JFrame’s e viraram JInternal.

Quanto ao futuro do swing, dê uma pesquisada aqui no fórum pois tem várias discussões sobre isso.
abraço!

Criado 30 de agosto de 2010
Ultima resposta 30 de ago. de 2010
Respostas 4
Participantes 3