Duvida com JFrame

boa noite galera…
estou tendo problema com as JFrame…

tenho a tela do menu principal… so que a cada janela q vou abrindo do sistema vai aumentando na barra de tarefa so windows, eu queria saber se tem uma forma sem ser utilizar jInternalFrame, tipo um jeito de nao mostrar na barra de tarefa a cada janela q for abrindo do sistema???

Tente usar o JDialog

[code]
import javax.swing.;
import java.awt.event.
;
import java.awt.*;

public class Janela extends JFrame
{
public static void main(String args[])
{
new Janela();
}

public Janela()
{
	setTitle("Janela");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setSize(150, 150);
	setLocation(120, 100);
	JButton bt = new JButton("click");
	bt.addActionListener(new ActionListener()
					{
						public void actionPerformed(ActionEvent e)
						{
							new Dialogo(null , "Novo dialogo", true);
						}
					});
	getContentPane().add(bt);
	setVisible(true);
}

public class Dialogo extends JDialog
{
	public Dialogo(Frame frm, String title, boolean modal)
	{
		super(frm, title, modal);
		setSize(390, 210);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		setLayout(null);
		setVisible(true);
	}
}

}[/code]

nao entendi mto bem ?

é também pensei em um dialogo mas nunca usei nem sei como usa! o máximo que usei foi os famosos:

JOptionPane.showMessageDialog(null, "Oi");
//e
JOptionPane.showConfirmDialog(null, "Oi?");

No NetBeans tem um componente de dialog mas não sei seus comandos e sintaxes não! se alguem puder ajudar eu também agradeceria.

Obrigado!

Com JFrames, não tem jeito. Mas esse é o comportamento normal das aplicações Windows.
Quando você abre duas instâncias do Word ou do Powerpoint, você vê dois ícones na barra de tarefas.

Se você quiser um ícone só, deve usar abas (como o Firefox), um componente chamado JTabbedPane. Outra possibilidade é usar o JInternalFrame, mas é um componente antiquado.
Você pode notar que as aplicações Microsoft já abandonaram o conceito de MDI há pelo menos 5 anos. No lugar, você poderia abrir JDialogs, embora esse não seja exatamente o papel delas.

Geralmente, é uma má idéia fugir dos padrões dos sistemas operacionais.

ViniGodoy esse é um projetinho pra TCC da faculdade,
me de uma opniao sua… estou fzd um sistema basico para uma loja, de venda de produtos e tals…
na sua opniao deixo como esta abrindo as janelas normalmente na barra de tarefas ou tento mudar para jinternalframe??

Ou deixa assim mesmo. Por que você está se incomodando com isso? Seu professor pediu explicitamente para não ser assim?

nao pediu nao… eu estava preocupado… pq os outros sistemas nao sao assim… fiquei meio encomodado

mas so uma outra pergunta… eu tenho um menu principal, e quando abro a tela de cadastro de cliente eu nao quero q o menu principal fique ativo para clicar e tals… so q minha aplicaçao esta toda em jFrame…

tem como eu quado abrir o cadastro de cliente eu nao poder clicar na janela anterior?

Aí só com JDialog mesmo. Troque de JFrame para JDialog e deixe sua JDialog normal.

Normalmente é bem fácil mudar de um para outro, o código dos dois é praticamente idêntico.

Desculpe, eu quis dizer “e deixe sua JDialog modal”.

Isso vai resolver não só o problema de não poder voltar a janela inicial, como também o da barra de tarefas. :wink:

Não dá pra “travar” o JFrame anterior? por exemplo, quando mudar de um JFrame pro outro, desabilitar os componentes do JFrame do menu, ou algo assim

Dá sim, mas isso é xunxo. Não impedirá o usuário de ir até o JFrame e vê-lo “congelado”.
Eu usaria isso apenas como último recurso.

Bom dia ViniGodoy. Pode será me explicar como que trava o outro frame? porque em um sistema que eu tava fazendo precisava exatamente disso e não consegui até que larguei mão huahsuah. Obrigado.

Você usa para isso um JDialog. O JDialog é uma janela que suporta o conceito de “modal” ou seja, não deixar que você acesse outras janelas até que ela seja fechada. O JDialog só dará acesso a janelas que o próprio JDialog abrir.

Tem um exemplo aqui:

Uma das grandes vantagens do JDialog é que o método setVisible() de uma dialog modal só retorna quando a janela fecha. Assim, fica bem fácil criar Dialogs para perguntar informações ao usuário, e ler quais informações foram lidas ao final. O exemplo do link acima mostra também essa situação.

Para tornar uma dialog modal, basta chamar o método setModel e passar como parâmetro o valor true.

suaDialog.setModal(true);

[quote=ViniGodoy]Você usa para isso um JDialog. O JDialog é uma janela que suporta o conceito de “modal” ou seja, não deixar que você acesse outras janelas até que ela seja fechada. O JDialog só dará acesso a janelas que o próprio JDialog abrir.

Tem um exemplo aqui:

Uma das grandes vantagens do JDialog é que o método setVisible() de uma dialog modal só retorna quando a janela fecha. Assim, fica bem fácil criar Dialogs para perguntar informações ao usuário, e ler quais informações foram lidas ao final. O exemplo do link acima mostra também essa situação.

Para tornar uma dialog modal, basta chamar o método setModel e passar como parâmetro o valor true.

suaDialog.setModal(true);

A sim! agora intendi. Depois vou tentar restaurar meu projeto. Eu tava tentando fazer uma espécie de pagina de login só que tava dando muita dor de cabeça pois eu estava usando JFrame então eu precisava desativar o frame principal e estava usando setVisible mas deu um punhado de problemas. Obrigado Vini.

eu consigo chamar um Jframe passando um valor pra ele??

preciso passar uma variavel por exemplo “1” ou “0”,
se for 1 eu habilito tal coisa no jframe e se for 0 habilito outra coisa???

[quote=DaitonJr]eu consigo chamar um Jframe passando um valor pra ele??

preciso passar uma variavel por exemplo “1” ou “0”,
se for 1 eu habilito tal coisa no jframe e se for 0 habilito outra coisa??? [/quote]
Eu ja precisei fazer isso uma vez antes de usa o dialog que agora funcionou. Mas eu fis diferente! eu criei uma classe com uma variavel do tipo static assim vc pode instanciar quantas vezes quiser que ela tera o mesmo valor estabelecido. Dai no seu frame vc faz a verificação. Acho que é isso que você quer saber né? Qualquer coisa me manda um email em esdrasbrz@gmail.com ou responde aqui mesmo.

é, travar o JFrame é, digamos, um recurso técnico ou POG rs o correto mesmo seria usar algo modal