Jframe

amigos estou abrindo 2 Jframe um o principal que tem os menus e o segundo estou abrindo sem problemas só que quando o 2 esta aberto eu consigo tranquilamente voltar para o 1 jframe e trabalhar nele enquanto o 2 continua aberto. amigos como fazer para o usuario não voltar para o 1 frame quando o 2 jframe esta aberto.

Posso sugerir que ao invés de um outro frame use um JDialog e torne-o modal do frame principal. Algo assim:

JDialog dialogModal = new jDialog(framePrincipal, true);

Isso resolve o seu problema perfeitamente.

Link para um exemplo do que o colega falou:

Você pode também simplesmente na 2° janela usar o JDialog e configurar o método setModal(); como true.

Fazendo isso ele perderá a referência quando, por exemplo, você minimizar, der alt + tab etc. Quando você voltar ele não estará mais modal.
Já passei por isso.

Fazendo isso ele perderá a referência quando, por exemplo, você minimizar, der alt + tab etc. Quando você voltar ele não estará mais modal.
Já passei por isso.[/quote]

Aqui mesmo fazendo o que você disse, quando eu volto continua modal.
Mas se você está dizendo, então em alguma situação que eu ainda não presenciei talvez ocorra isso.

[quote]Aqui mesmo fazendo o que você disse, quando eu volto continua modal.
Mas se você está dizendo, então em alguma situação que eu ainda não presenciei talvez ocorra isso. [/quote]

Acabei de testar novamente. Olha ai:

Frame:

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class FramePrincipal extends JFrame {	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					FramePrincipal frame = new FramePrincipal();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	public FramePrincipal() {
		JPanel contentPane = new JPanel();	
		contentPane.setLayout(null);
		this.setContentPane(contentPane);		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(100, 100, 990, 651);	
		JButton btnNewButton = new JButton("Chama Dialogo");
		btnNewButton.setBounds(100,200,103,35);
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				new Dialogo();
			}
		});
		contentPane.add(btnNewButton);	
	}

}

Dialogo:

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;


public class Dialogo extends JDialog {
	
	public Dialogo() {
		JPanel contentPanel = new JPanel();
		setBounds(100, 100, 450, 300);
		setModal(true);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setLayout(new FlowLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
	
		setVisible(true);
	}
}

Para testar os problemas que não usar a janela owner dá, teste o seguinte:
a) Abra a janela pai;
b) Abra a janela modal;
c) Clique no botão “exibir área de trabalho” do Windows;
d) Agora clique para abrir a aplicação;

Dependo do SO que você tiver, você terá os seguintes comportamentos:
a) A janela pai vai abrir, completamente travada, e você não poderá fazer nada;
b) A janela pai não vai abrir;
c) A JDialog vai abrir sozinha, e o usuário não vai ver que janela aquela JDialog pertence.
d) A janela pai abre, mas permitindo edição.

Indicando a janela pai, ela abre, o JDialog na frente, e o comportamento modal é garantido. Sempre forneça a janela pai ao abrir dialogs modais. Esse parâmetro não está lá à toa.

Valeu Galera Deu Certo Obg Abraço a todos…