JDialog Modal

Pessoal primeiro vou explicar o que qero fazer… eu qero fazer um tela de Login onde o usuario digita login e senha e ali mesmo ele ja escolhe o idioma desejado, depois disso ele chama outra tela MenuPrincipal onde tem as opçoes desejadas do sistema, o problema é que a tela como posso explicar… um pedaço da tela de login fica na frente das opçoes do MenuPrincipal, mas nao é a tela de login que apenas esta na frente da tela MenuPrincpal, o que acontece é que a tela MenuPrincipal aparece normal com um pedaço da tela Login dentro dela deu pra entender pessoal ??

segue o codigo abaixo…

[code]import javax.swing.*;
import java.util.ResourceBundle;
import java.util.Locale;

public class ResourceBundlee extends JFrame{

protected ResourceBundle bn=null;
private JDialog d = new JDialog();
private JFrame frame=new JFrame();

public void verificar(int op){

   switch(op)
  {
     case 1: bn=ResourceBundle.getBundle("ex11",new Locale("pt","BR"));
        break;
  			 
     case 2:	bn = ResourceBundle.getBundle("ex11", Locale.US);
        break;
  	
     case 3: bn=ResourceBundle.getBundle("ex11", new Locale("es","ES"));
        break;
  			
     default: bn=ResourceBundle.getBundle("ex11");
        break;
  }

}
}[/code]

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

public class Login extends ResourceBundlee implements ActionListener{

private JButton botoes[];
private JTextField texto[];
private JLabel label[];
private ImageIcon imagem[];
private JDialog d = new JDialog();

public Login(){
super();

  botoes= new JButton[5];

  for(int i=0;i<botoes.length;i++){
     botoes[i]=new JButton("");
  }
   
  texto=new JTextField[2];
  label=new JLabel[2];
  String nome[]={"Usuario","Senha"};
  for(int i=0;i<texto.length;i++){
     label[i]=new JLabel(nome[i]);
     label[i].setFont(new Font("Serif",Font.PLAIN,16));
     texto[i]=new JTextField();
  }
  
  JPanel panel1=new JPanel();
  panel1.setLayout(null);
  panel1.setLocation(140,80);
  panel1.setSize(359,219);
  
  panel1.setBorder(BorderFactory.createTitledBorder(""));
      
  label[0].setBounds(30,30,100,60);
  label[1].setBounds(30,90,100,60);
  
  texto[0].setBounds(110,50,220,20);
  texto[1].setBounds(110,110,220,20);
    
  for(int i=0;i<label.length;i++){
     panel1.add(label[i]);
     panel1.add(texto[i]);
  }
  
       
  imagem = new ImageIcon[5];
  imagem[0]= new ImageIcon("imagens/brasil.jpg");
  imagem[1]= new ImageIcon("imagens/espanha.jpg");
  imagem[2]= new ImageIcon("imagens/eua.jpg");
  imagem[3] = new ImageIcon("imagens/ok.jpg"); // imagem do botão CADASTRAR/
  imagem[4] = new ImageIcon("imagens/voltar.jpg");  // imagem do botão CANCEL/
        
  botoes[0]=new JButton(imagem[0]);
  botoes[0].setBounds(540,20,37,25);
 
  botoes[1]=new JButton(imagem[1]);
  botoes[1].setBounds(590,20,37,25);
        
  botoes[2]=new JButton(imagem[2]);
  botoes[2].setBounds(640,20,37,25);      

  botoes[3]=new JButton("Ok", imagem[3]);
  botoes[3].setBounds(480,320,100, 26);
    		
  botoes[4]=new JButton("Cancel", imagem[4]);
  botoes[4].setBounds(590,320,100, 26);
  
  for(int i=0;i<botoes.length;i++){
     botoes[i].addActionListener(this);
  }
  
    
  JPanel panel2=new JPanel();
  panel2.setLayout(null);
  
  panel2.add(panel1);
  panel2.add(botoes[0]);
  panel2.add(botoes[1]);
  panel2.add(botoes[2]);
  panel2.add(botoes[3]);
  panel2.add(botoes[4]);
        
  add(panel2);
  
  setSize(740,415);
  setLocationRelativeTo(null); 	
  setVisible(true);

}

public void actionPerformed(ActionEvent event){

  if(event.getSource()==botoes[3]){
     String nome=(texto[0].getText());
     String senha=(texto[1].getText());
  		
     usuarioSenha objeto = new usuarioSenha();
  		
     objeto.openFile();
     objeto.LerRegistro(nome,senha);
     objeto.fecharArquivo();
     	
     dispose();
  }
  
  if(event.getSource()==botoes[0]){
     verificar(1);	
     label[0].setText(String.format(bn.getString("Usuario")));
     label[1].setText(String.format(bn.getString("Senha")));
  }
  
  if(event.getSource()==botoes[1]){
     label[0].setText(String.format("Usuario"));
     label[1].setText(String.format("Contraseña"));
  }
  
  if(event.getSource()==botoes[2]){
     label[0].setText(String.format("User"));
     label[1].setText(String.format("Password"));
  }

}
}[/code]

observe que quando ele clica em ok, chama a tela abaixo que apenas verifica se usuario e senha existem

[code] import java.util.;
import java.io.
;
// import java.lang.;
import javax.swing.
;

public class usuarioSenha extends JFrame{

  //private Formatter gravaTxt;
  private Scanner lerTxt;
  private JDialog d = new JDialog();

  public void openFile()//esse metodo verifica se o arquivo esta td ok
  {
     try{
     //aqui o lerTxt ja sabe q é nessa pasta que contem as informações de usuario e senha
        lerTxt=new Scanner(new File("Usuario.texto"));
     }
        catch(SecurityException naoConectado){
           System.out.println("Arquivo corrompido");
           System.exit(1); 
        }
        catch(FileNotFoundException naoEncontrado){
           System.out.println("Arquivo nao encontrado");
           System.exit(1);
        }     	
  }

  public void LerRegistro(String nome,String senha){
     Usuario usuario=new Usuario();//instaciando um objeto de usuario
     System.out.println("Nome Usuario"+"\tSenha Usuario");//apenas vai imprimir pra fica mais facil de entender
  	
     try{
        while(lerTxt.hasNext()){
           usuario.setUsuario(lerTxt.next());//ler usuario
           usuario.setSenha(lerTxt.next());//ler senha
        	
        	
        	//apenas imprimi o nome e senha corretos de usuario
           System.out.printf("%s \t %s ",usuario.getUsuario(),usuario.getSenha());
        }
     }
        catch(NoSuchElementException excecaoElemento){
           System.out.println("Arquivo criado com defeito");
        
         //  lerTxt.close();
           System.exit(1);
        }
     
        catch(IllegalStateException ilegalEstado){
           System.out.println("Erro na leitura do arquivo");
        //input.close();
           System.exit(1);
        }
  	
  	//esta comparado nome/senha de usuario com nome/senha passado por parametro pra ver se é igual	
     if(usuario.getUsuario().equals(nome)&& usuario.getSenha().equals(senha))
     {
     dispose();
        MenuPrincipal menu = new MenuPrincipal(this,true);	
     }
     else{
        JOptionPane.showMessageDialog(null,"\nAcesso negado","Erro",0);
     }
  }

	
  public void fecharArquivo(){
     if(lerTxt!=null){
        lerTxt.close();
     }
  }

}[/code]

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

public class MenuPrincipal extends Login implements ActionListener{

private JRadioButton[] radio;
private JPanel[] panel;
private String[] dados ={"Cadastrar Veículo", "Locar Veículo", "Devolver Veículo", "Excluir Veículo", 
						"Consultar Veículo", "Efetuar Pagamento", "Cadastrar Cliente" };
private ButtonGroup group;
private JButton ok;
private JDialog d = new JDialog();
private JLabel[] imagem;

private JMenu file;
private JMenu view;
private JMenu edit;
private JMenu help;
private JMenuBar bar;
private ImageIcon[] icon;

private JFrame frame;
	
public MenuPrincipal(JFrame frame,boolean modal) {

// this.setModal(modal); aquii nao sei pq mais da erro quando tento compilar, por isso esta comentado

	try{
		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	}
	 catch(Exception e){
	 	
	}
	
	
	icon    = new ImageIcon[9]; 
	icon[0] = new ImageIcon("imagens/logo1.jpg");
	icon[1] = new ImageIcon("imagens/ok.jpg");
	icon[2] = new ImageIcon("imagens/cadastrar veiculo.jpg");
	icon[3] = new ImageIcon("imagens/locar veiculo.jpg");
	icon[4] = new ImageIcon("imagens/devolver veiculo.jpg");
	icon[5] = new ImageIcon("imagens/excluir veiculo.jpg");
	icon[6] = new ImageIcon("imagens/consultar veiculo.jpg");
	icon[7] = new ImageIcon("imagens/pagamento.jpg");
	icon[8] = new ImageIcon("imagens/cadastrar cliente.jpg");
  JLabel logo = new JLabel(icon[0]);//adiciono a imagem como um JLabel    
	radio = new JRadioButton[7];
	imagem= new JLabel[7];
	panel = new JPanel[dados.length+1];
	ok    = new JButton(" Ok ", icon[1]);
	group = new ButtonGroup();
	Color acolor = new Color(0xDCDCDC);
	Color color  = new Color(0xDCDCDC); 
	file   = new JMenu("File");
	view   = new JMenu("View");
	edit   = new JMenu("Edit");
	help   = new JMenu("help");
	
	for(int i = 0; i < panel.length; i++){
		panel[i] = new JPanel();
	}
	for(int i = 0; i < radio.length; i++){
		radio[i] = new JRadioButton(); 
	}
	
	for(int i = 0; i < imagem.length; i++){
		imagem[i]= new JLabel(icon[2+i]); 
	}
	
	for(int i = 0; i < radio.length; i++){
		imagem[i].setSize(30,30);
		imagem[i].setLocation(30,15);
	}

	// criando panel com borda
	for(int i = 1; i < panel.length; i++){
		panel[i].setBorder(BorderFactory.createTitledBorder(dados[i-1]));
		panel[i].setLayout(null);
	}
	
	setResizable(false);

	bar = new JMenuBar();
	setJMenuBar(bar);
	
	bar.add(file);
	bar.add(view);
	bar.add(edit);
	bar.add(help);
	// criando panel sem borda;
	panel[0].setBorder(BorderFactory.createLoweredBevelBorder());
	panel[0].setLayout(null);
	
	// criando tamanho dos paineis com borda (Tamanho padrão para todos)
	for(int i = 1; i < panel.length; i++){
		panel[i].setSize(220,60);
	}	  
	
	// criando tamanho dos JRadioButton (tamanho e localização padrão para todos)
	for(int i = 0; i < radio.length; i++){
		radio[i].setSize(20,15);
		radio[i].setLocation(5,15);
	}
	
	ok.setSize(80,26);
	ok.setLocation(460,450);
	
	panel[1].setLocation(25,20);
	panel[2].setLocation(25,80);
	panel[3].setLocation(25,140);
	panel[4].setLocation(25,200);
	panel[5].setLocation(25,260);
	panel[6].setLocation(25,320);
	panel[7].setLocation(25,380);

	for(int i = 0; i < radio.length; i++){
		group.add(radio[i]);
	}
		
	// adicionando aos paineis de borda um radio button
	for(int i = 0; i < radio.length; i++){
		panel[i+1].add(radio[i]);
		panel[i+1].add(imagem[i]);
	}
	
	for(int i = 1; i < panel.length; i++){
		panel[0].add(panel[i]);;
	}
	for(int i = 1; i < panel.length; i+=2){
		panel[i].setBackground(acolor);
	}
	
	logo.setSize(300,350);
	logo.setLocation(250,50);
	
	radio[0].addActionListener(this);
	radio[1].addActionListener(this);
	radio[2].addActionListener(this);
	radio[3].addActionListener(this);
	radio[4].addActionListener(this);
	radio[5].addActionListener(this);
	radio[6].addActionListener(this);
	ok.addActionListener(this);
	panel[0].add(ok);
	panel[0].add(logo);
	
	panel[0].setBackground(color); 
	 
		
	add(panel[0]);														
	
	initialize();	
}

public void initialize(){
	this.setSize(600,550);
  	this.setVisible(true);
  	this.setTitle("MenuPrincipal");
  	this.setLocationRelativeTo(null);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}	

public void actionPerformed(ActionEvent e){
	if(e.getSource() == radio[0]){
		CadastrarVeiculo c = new CadastrarVeiculo(frame, true);		
	}	
	if(e.getSource() == radio[1]){
		PesquisaNomeModelo pesquisa = new PesquisaNomeModelo(frame, true); //this, true
	}
	if(e.getSource() == radio[2]){
		DevolucaoVeiculo devolucao = new DevolucaoVeiculo(frame, true);	
	}
	if(e.getSource() == radio[3]){
		ExcluirVeiculo excluir = new ExcluirVeiculo(frame, true);
	}
	if(e.getSource() == radio[4]){
		ConsultarVeiculo veiculo = new ConsultarVeiculo(frame, true);	
	}
	if(e.getSource() == radio[5]){
		//BasePagamento pagamento = new BasePagamento(this, true);

		DevolucaoVeiculo devolucao = new DevolucaoVeiculo(frame, true);
		devolucao.setSize(600,550);
	}
	if(e.getSource() == radio[6]){
		CadastrarCliente cliente = new CadastrarCliente(frame, true);
	}
	if(e.getSource() == ok){
		System.exit(0);
	}
}   

}[/code]