Opa!
Meu nome é Thiago e sou iniciante no java. Estou fazendo um programa desktop em java que precisa de acesso restrito.
Então eu tentei com o código abaixo mas ainda não tá dando certo. É uma aplicação em camadas.
Por favor, me ajudem. Aí vai..
Na parte de login há a seguinte estrutura:
login.java ~> É o JFrame onde o usuário entra com o login e senha usuario.java ~> É uma classe com métodos get e set para login, nome e tipo. controleGeral.java ~>Tem um método chamado validaLogin (boolean) que validará o login. Dao.java ~> que fará o select no banco.
O código..
login.javaprivate void JB_EntrarActionPerformed(java.awt.event.ActionEvent evt) {
String login = this.JTF_Login.getText();
String senha = this.JPF_Senha.getText();
boolean logado = false;
try {
logado = controle.validaLogin(login, senha);
} catch (SQLException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
if (logado = false){
System.exit(0);
}else{
dispose();
}
}
public ResultSet login(Usuario usuario) throws SQLException{
this.openDB();
String query = "SELECT * FROM usuarios WHERE login=?";
try{
pstmt = con.prepareStatement(query);
pstmt.setString(1, usuario.getLogin());
pstmt.execute();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Impossível logar " + e);
}
this.closeDB();
if(result.next()){
return result;
}else{
return null;
}
}
controleGeral.java
public class controleGeral {
String login1;
String senha1;
ResultSet resultado;
public boolean validaLogin(String login2, String senha2) throws SQLException{
login1 = login2;
senha1 = senha2;
boolean logado = false;
Usuario usuario = new Usuario();
usuario.setLogin(login2);
/*usuario.setSenha(senha2);*/
Dao acesso = new Dao();
resultado = acesso.login(usuario);
if(!resultado.next()){
JOptionPane.showMessageDialog(null, "Login inexistente!");
}else{
if(login1.equals(resultado.getString("login"))){
if(senha1.equals(resultado.getString("senha"))){
usuario.setLogin(resultado.getString("login"));
usuario.setTipo(resultado.getString("tipo"));
usuario.setNome(resultado.getString("nome"));
logado = true;
}else{
logado = false;
usuario.setLogin(null);
usuario.setNome(null);
usuario.setTipo(null);
}
}else{
logado = false;
usuario.setLogin(null);
usuario.setNome(null);
usuario.setTipo(null);
}
}
return logado;
}
}
public class Usuario {
private String login;
private String nome;
private String tipo;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
}
O erro:
Exception occurred during event dispatching: java.lang.NullPointerException at persistencia.Dao.login(Dao.java:77) at controle.controleGeral.validaLogin(controleGeral.java:24) at menus.login.JB_EntrarActionPerformed(login.java:123) at menus.login.access$100(login.java:10) at menus.login$2.actionPerformed(login.java:56) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.Dialog$3.run(Dialog.java:1098) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1096) at java.awt.Component.show(Component.java:1585) at java.awt.Component.setVisible(Component.java:1537) at java.awt.Window.setVisible(Window.java:842) at java.awt.Dialog.setVisible(Dialog.java:986) at menus.Menu01.formWindowOpened(Menu01.java:159) at menus.Menu01.access$000(Menu01.java:6) at menus.Menu01$1.windowOpened(Menu01.java:31) at java.awt.Window.processWindowEvent(Window.java:1862) at javax.swing.JFrame.processWindowEvent(JFrame.java:274) at java.awt.Window.processEvent(Window.java:1823) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Muito obrigado, mesmo não podendo ajudar.
Thiago

