JDialog Modal

0 respostas
B

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....

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;
      }
      
   }
}
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"));
      }
   
   }
}

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

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();
         }
      }
   	
   }
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);
		}
	}   
}
Criado 30 de julho de 2013
Respostas 0
Participantes 1