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