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

[RESOLVIDO] Java - Erro InvocationTargetException e NullPointerException

Bom dia galera. Estou me matando aqui com um erro em uma coisa aparentemente simples, se alguém puder me ajudar...

Tenho uma tela de Login em JavaFX, com um botão com (ActionEvent event) chamado clickLogin. O programa executa, mas quando clico no botão, ele não faz o que tem que fazer, e aparece os erros no relatório do netbeans... Creio que seja devido a linha do Action Event, Tentei fazer alterações, mas não consegui resolver.

Alguém poderia me ajudar? Alguma idéia?

O Controller.java:

package odinswlmanager;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;

import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

/**
 *
 * @author e001307
 */
public class FXMLDocumentController implements Initializable {

    @FXML
    private Label lblError;
    @FXML
    private Button btnLogin;
    @FXML
    private Button btnClose;
    @FXML
    private TextField lblUser;
    @FXML
    private PasswordField lblPass;

    @FXML    
    private void clickLogin(ActionEvent event) throws IOException {

        if (lblUser.getText().equals("Teste") && lblPass.getText().equals("Teste")) {
            Parent parent;
            parent = FXMLLoader.load(getClass().getResource("Main.fxn"));
            Stage stage = new Stage();
            Scene scene = new Scene(parent);
            stage.setScene(scene);
            stage.setTitle("Odin SwL Manager");
            stage.show();
        }   
            else {
            lblError.setText("Você é boba Rose?");
        }
    }

    @FXML
    private void clickExit(ActionEvent event) {
    Platform.exit();
    }


    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    

}

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.text.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="324.0" prefWidth="320" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="odinswlmanager.FXMLDocumentController">
    <children>
        <Button fx:id="btnLogin" alignment="CENTER" layoutX="95.0" layoutY="182.0" onAction="#clickLogin" prefHeight="25.0" prefWidth="134.0" text="Entrar" />
        <Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
      <TextField fx:id="lblUser" alignment="CENTER" layoutX="73.0" layoutY="83.0" prefHeight="25.0" prefWidth="179.0" promptText="Usuario" />
      <PasswordField fx:id="lblPass" alignment="CENTER" layoutX="73.0" layoutY="124.0" prefHeight="25.0" prefWidth="179.0" promptText="Senha" />
      <Label fx:id="lblError" alignment="CENTER" layoutX="94.0" layoutY="159.0" prefHeight="17.0" prefWidth="134.0" />
      <Label alignment="CENTER" layoutX="39.0" layoutY="9.0" prefHeight="46.0" prefWidth="244.0" text="Odin SwL Manager">
         <font>
            <Font name="Onyx" size="48.0" />
         </font>
      </Label>
      <Button fx:id="btnClose" alignment="CENTER" layoutX="95.0" layoutY="221.0" mnemonicParsing="false" onAction="#clickExit" prefHeight="25.0" prefWidth="134.0" text="Sair" />
    </children>
</AnchorPane>

Erro ao clicar no botão:

Executing C:\Users\e001307\Documents\NetBeansProjects\OdinSwLManager\dist\run846319737\OdinSwLManager.jar using platform C:\Program Files\Java\jdk1.8.0_60\jre/bin/java
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$355(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$149(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: Location is required.
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3207)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
    at odinswlmanager.FXMLDocumentController.clickLogin(FXMLDocumentController.java:47)
    ... 58 more

```

  • o que tem na linha 44?

    Fernando Beckenbach Buonocore   31 de ago de 2015
  • No Controller: if (txtUser.getText().equals("Teste") && txtPass.getText().equals("teste")) {

    Victor Guiraldelli   31 de ago de 2015
  • Você também esqueceu de anotar o btnExit com @FXML, sem ela é provável que lance exceção.

    Cassio Danilo   03 de set de 2015
  • @Cassio Danilo;

    Assim? @FXML public Label lblError; @FXML public Button btnLogin; @FXML public Button btnExit; @FXML public TextField txtUser; @FXML public PasswordField txtPass;

    Testei e continua mesma coisa. :/ Tentei alterar para public, de private, continua...

    Victor Guiraldelli   03 de set de 2015
  • Coloque o código do seu arquivo FXML

    samuelcguimaraes   03 de set de 2015
Mostrar todos os 6 comentários>
  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 javafx java ou faça a sua própria pergunta.