Ajuda Segurança Login - Instanciação classe

0 respostas
bruno.mps

Estou montando um esquema de segurança de acesso através de LOGIN em java desktop… O usuário loga e na tela principal que surge, aparece somente os menus que ele possue registrados no banco de dados.

Mas estou esbarrando numa questão básica que não estou conseguindo ver…

Estou utilizando o padrão MVC no desenvolvimento.
ABaixo é a classe de controle.

Após login… Simplesmente me surgem 2 telas principais com os 2 acessos separados…
Levando-se em conta por exemplo que o usuário que logou tem acesso ao menu de relatorios e cadastro…

Então aparecem 2 telas principais… a 1ª com o menu de cadastro e a 2ª com o menu de relatorios… quando deveriam aparecer juntas na mesma tela…

EU não sei como fazer os métodos rodarem e usarem a mesma instânciação da tela principal…

será que alguém pode me dar uma ajuda ?

Obrigado.
Não sei se consegui ser claro. Sou iniciante em java.

public class ControleLogin implements ActionListener{

	JFrame tela;
	
	
	public ControleLogin(JFrame tela) {
		this.tela=tela;
	}

        // método que exibe o menu relatorio
	@SuppressWarnings("deprecation")
	public void ExibeRelatorio(){
		TelaPrincipal tp=new TelaPrincipal();
		tp.getCadastro().show();
		tp.getCadastro().enable();
				
	}
	
        //método que exibe o menu cadastro
	@SuppressWarnings("deprecation")
	public void ExibeCadastro(){
		TelaPrincipal tp=new TelaPrincipal();
		tp.getRelatorios().show();
		tp.getRelatorios().enable();
			
	}
	@SuppressWarnings("deprecation")
	public void ExibeConsulta(){
		tp.getConsulta().show();
		tp.getConsulta().enable();
	}
	@SuppressWarnings("deprecation")
	public void ExibeUpdates(){
		tp.getUpdates().show();
		tp.getUpdates().enable();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand().equals("Entra!")){
			
			JPanel painelA=(JPanel)tela.getContentPane().getComponent(0);
			JTextField login=(JTextField)painelA.getComponent(2);
			JTextField senha=(JTextField)painelA.getComponent(3);
			
			DaoFactory df=DaoFactory.getDaoFactory(DaoFactory.sqlserver);
			DaoLogin dl=df.getDaoLogin();
			
			Login l=new Login();
			l.setLogin(login.getText());
			l.setSenha(senha.getText());
			
			if(dl.verificalogin(l)){
				tela.dispose();
				Vector v=dl.verificaAcesso(l);
								
				for(int i=0;i<v.size();i++){
					
					Login acesso=(Login)v.get(i);
					System.out.println(acesso.getAcessos());
					
					try {
						Class<? extends ControleLogin> c=getClass();
						Method meth=c.getMethod(acesso.getAcessos());
						meth.invoke(this,null);
												
					} catch (SecurityException e2) {
						// TODO Auto-generated catch block
						e2.printStackTrace();
					} catch (NoSuchMethodException e3) {
						// TODO Auto-generated catch block
						e3.printStackTrace();
					} catch (IllegalArgumentException e4) {
						// TODO Auto-generated catch block
						e4.printStackTrace();
					} catch (IllegalAccessException e5) {
						// TODO Auto-generated catch block
						e5.printStackTrace();
					} catch (InvocationTargetException e6) {
						// TODO Auto-generated catch block
						e6.printStackTrace();
					}
					
					
										
				}
								
			}
			else
				JOptionPane.showMessageDialog(null, "Senha ou Usuário inexistentes!");
		}
		
		
	}

}
Criado 1 de setembro de 2008
Respostas 0
Participantes 1