Dúvidas sobre primeiro projeto em JavaFX
Bom dia galera,
Estou começando os estudos em JavaFX utilizando a ide Netbeans + SceneBuilder em conjunto e logo no primeiro projeto estou enfrentando um erro que não consigo decifrar. Criei um "Novo Projeto >>> Aplicação FXML" e utilizei o SceneBuilder apenas para dar nomes (id's) aos dois componentes contidos na tela, um botão e um label.
Porem ao executar a aplicação tem sido exibido o seguinte erro:
O meu projeto tem apenas a classe Principal chamada Teste com o seguinte código:
E a classe Control:
E o arquivo fxml
Desde já agradeço por qualquer ajuda.
Estou começando os estudos em JavaFX utilizando a ide Netbeans + SceneBuilder em conjunto e logo no primeiro projeto estou enfrentando um erro que não consigo decifrar. Criei um "Novo Projeto >>> Aplicação FXML" e utilizei o SceneBuilder apenas para dar nomes (id's) aos dois componentes contidos na tela, um botão e um label.
Porem ao executar a aplicação tem sido exibido o seguinte erro:
Exception in Application start method 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 com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 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.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:745) 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 teste.Teste.start(Teste.java:22) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$149(WinApplication.java:191) ... 1 more Exception running application teste.Teste C:\\Users\\ALLINONE\\Documents\\NetBeansProjects\\Teste\\nbproject\\build-impl.xml:1051: The following error occurred while executing this line: C:\\Users\\ALLINONE\\Documents\\NetBeansProjects\\Teste\\nbproject\\build-impl.xml:805: Java returned: 1 FALHA NA CONSTRUÇÃO (tempo total: 7 segundos)
O meu projeto tem apenas a classe Principal chamada Teste com o seguinte código:
package teste;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
/**
*
* @author ALLINONE
*/
public class Teste extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
// Scene scene = new Scene(root);
stage.setScene(new Scene(root));
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
E a classe Control:
package teste;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;
/**
*
* @author ALLINONE
*/
public class FXMLDocumentController implements Initializable {
@FXML
private Button btClick;
@FXML
private Label lbTexto;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
lbTexto.setText("Hello World!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
@FXML
private void handleButtonAction(MouseEvent event) {
System.out.println("You clicked me!");
lbTexto.setText("Hello World!");
}
}
E o arquivo fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.60" fx:controller="teste.FXMLDocumentController">
<children>
<Button fx:id="btClick" layoutX="126" layoutY="90" onAction="#handleButtonAction" onMouseClicked="#handleButtonAction" text="Click Me!" />
<Label fx:id="lbTexto" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
</children>
</AnchorPane>
Desde já agradeço por qualquer ajuda.
Bruno Silva
Curtidas 0
Respostas
Rene Tsugawa
10/09/2016
Bom dia.
Testei o seu projeto e não apresentou erro, funcionou corretamente.
Mas para tente remover a id do AnchorPane, pois o mesmo não é utilizado no Controller e isso pode gerar erros.
Testei o seu projeto e não apresentou erro, funcionou corretamente.
Mas para tente remover a id do AnchorPane, pois o mesmo não é utilizado no Controller e isso pode gerar erros.
GOSTEI 0
Bruno Silva
10/09/2016
Mesmo tirando o id do AnchorPane continua com o mesmo erro Rene, quando ele começa a compilar está dando essa mensagem,acabei me esquecendo de colocar antes da Exception que ocorre.
Não sei se tem alguma coisa que poderia influenciar também em termos de configuração, pois nunca havia mexido com JavaFx, mas eu fiz uma alteração na seguinte configuração do NetBeans, fui em "Ferramentas >>> Opções >>> Java >>> JavaFX" e apontei o Home Page do Scene Builder para a minha area de trabalho do windows, não sei se isso poderia estar influenciando ou impedindo que o projeto rode...
Desde já agradeço por qualquer ajuda.
ant -f C:\\\\Users\\\\ALLINONE\\\\Documents\\\\NetBeansProjects\\\\Teste -Djavac.includes=teste/Teste.java -Dnb.internal.action.name=run.single -Drun.class=teste.Teste run-single init: Deleting: C:\\Users\\ALLINONE\\Documents\\NetBeansProjects\\Teste\\build\\built-jar.properties deps-jar: Updating property file: C:\\Users\\ALLINONE\\Documents\\NetBeansProjects\\Teste\\build\\built-jar.properties Compiling 1 source file to C:\\Users\\ALLINONE\\Documents\\NetBeansProjects\\Teste\\build\\classes compile-single: run-single:
Não sei se tem alguma coisa que poderia influenciar também em termos de configuração, pois nunca havia mexido com JavaFx, mas eu fiz uma alteração na seguinte configuração do NetBeans, fui em "Ferramentas >>> Opções >>> Java >>> JavaFX" e apontei o Home Page do Scene Builder para a minha area de trabalho do windows, não sei se isso poderia estar influenciando ou impedindo que o projeto rode...
Desde já agradeço por qualquer ajuda.
GOSTEI 0