1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

[RESOLVIDO] Ajuda com métodos em Hierarquias.

Bom dia!

Estou tentando aprender sobre as Hierarquias, então tentei fazer algumas modificações em alguns métodos da minha aplicação, me pareceu que utilizando hierarquias corretamente, ficaria algo mais limpo e mais bem trabalhado.

Mas após modificar meus métodos, estou tendo um NullPointerException.

Eu não sei se estou fazendo da forma correta, então gostaria da ajuda de vocês.

  • Tenho uma tela de login onde você precisa selecionar um dos 4 RadioButtons, para dizer qual tipo de Login é o seu:

São: rbGTI, rbGAD, rbCONT, rbSYS.

  • Tenho uma outra classe já dentro do programa logado, onde você pode alterar a senha.

Eu tinha um método diferente para cada captura de ID, para guardar alguns dados após login, porém pensei em criar apenas um, com alguns IFs dentro dele. Ficou assim:

  • Classe Login (Método de captura de dados pós Login):
public String captLogin() throws SQLException{
        if(rbGTI.isSelected()){         
            userId =   rs.getInt   ("id_col");
            userName = rs.getString("nome_col");
            logType = String.valueOf("Colaborador");
        return logType;}

        if(rbGAD.isSelected()){
            LoginController.userId =   rs.getInt   ("id_gad");
            LoginController.userName = rs.getString("nome_gad");
            logType = String.valueOf("Auditoria");
        return logType;}

        if(rbCON.isSelected()){
            LoginController.userId     =   rs.getInt   ("id_con");
            LoginController.gerId      =   rs.getInt   ("id_ger");
            LoginController.gerName    =   rs.getString("nome_ger");
            LoginController.userName   =   rs.getString("nome_con");
            logType = String.valueOf("Contraparte");
        return logType;}

        if(rbSYS.isSelected()){
            LoginController.userId =   rs.getInt   ("id_sys");
            LoginController.userName = rs.getString("nome_sys");
            logType = String.valueOf("System");
        return logType;}

        return String.valueOf("Falhou");
    }

Na classe de Alterar a senha (possui um EXTENDS Login), eu utilizaria IFs, para os 4 logType diferentes. Para testar, coloquei esta ação no botão de Alterar:

  • Classe Alterar Senha:

    @FXML    public void ckAltSenha(ActionEvent event) throws IOException, SQLException{
    
         logType2 = String.valueOf(captLogin());
         System.out.println(logType2);
     }
    • Agora quando clico no botão na classe de Alterar senha, para verificar se estaria pegando o logType corretamente, recebo o NullPointerException nas linhas dos IFs que tem os RadioButtons:
if(rbGTI.isSelected()){

Alguém poderia me ajudar? Muito obrigado.

  • Informações adicionais: Após o Login bem sucedido, a tela de Login da um .hide(); para abrir a Main; Exemplo:

    • Classe Login:
      System.out.println("Credenciais aprovadas, abrir janela Main.");
                     Parent parentMain = FXMLLoader.load(getClass().getResource("Colab.fxml"));
                     Scene sceneMain = new Scene(parentMain);
                     Stage stageMain = (Stage) ((Node) event.getSource()).getScene().getWindow();
                     stageMain.hide();
                     stageMain.setScene(sceneMain);
                     stageMain.setTitle("Odin SwL Manager");
                     stageMain.show();
  • Erro:
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Node.fireEvent(Node.java:8411)
    at javafx.scene.control.Button.fire(Button.java:185)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:388)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
    ... 48 more
Caused by: java.lang.NullPointerException
    at odinswlmanager.LoginController.captLogin(LoginController.java:236)
    at odinswlmanager.ColabAltSenhaController.ckAltSenha(ColabAltSenhaController.java:37)
    ... 58 more
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.