[英]getting an error in the initialize when I try to run my javafx application
I was testing JavaFX application and I'm getting errors now don't know much about JavaFX , still learning it. 我正在测试JavaFX应用程序,但现在遇到错误,现在对JavaFX不太了解,仍然在学习它。 I think its because of the
label.setText(numbers[0]);
我认为这是因为
label.setText(numbers[0]);
and if I do @FXML Label lebal = new Label();
如果我这样做
@FXML Label lebal = new Label();
, it wont change on action. ,它不会改变动作。 Thanks.
谢谢。
my gui class 我的gui课
package fx;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class GUI extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
final Parent root = FXMLLoader.load(getClass().getResource("test.fxml")); //error (GUI.java:15)
primaryStage.setTitle("Hello World!");
primaryStage.setScene(new Scene(root, 257, 474));
primaryStage.setResizable(false);
primaryStage.show();
;
}
public static void main(String[] args) {
GUI.launch(GUI.class, args);
}
}
my controller class: 我的控制器类:
package fx;
import java.net.URL;
import java.util.Arrays;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import com.sun.javafx.collections.ObservableListWrapper;
public class myCon implements Initializable {
@FXML Button button;
@FXML ComboBox<String> combobox;
@FXML Label label;
String[] order = {"First", "second"};
String[] numbers = {"one", "two"};
@Override
public void initialize(URL location, ResourceBundle resources) {
combobox.setItems(new ObservableListWrapper<>(Arrays.asList(order)));
combobox.getSelectionModel().selectFirst();
label.setText(numbers[0]);//error here (myCon.java:32)
System.out.println(label.getText());
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
label.setText(numbers[combobox.getSelectionModel().getSelectedIndex()]);
System.out.println(label.getText());
}
});
}
} }
the error I'm getting 我得到的错误
Jul 01, 2013 11:45:24 AM javafx.fxml.FXMLLoader logException
SEVERE: java.lang.NullPointerException
/C:/Users/user/Desktop/New%20folder%20(2)/Project/bin/fx/test.fxml:-1
at fx.myCon.initialize(myCon.java:32)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2047)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:1900)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2486)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2478)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2472)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2466)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2461)
at fx.GUI.start(GUI.java:15)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:315)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:174)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:141)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
at java.lang.Thread.run(Unknown Source)
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:399)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at fx.myCon.initialize(myCon.java:32)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2047)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:1900)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2486)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2478)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2472)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2466)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2461)
at fx.GUI.start(GUI.java:15)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:315)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:174)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:141)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
... 1 more
Your field 您的领域
Label label;
Is not initialized - that is, it is still null. 未初始化-也就是说,它仍然为null。
Your injection annotation @FXML
(see tutorial) has obviously failed to load an instance. 您的注入批注
@FXML
(请参见教程)显然无法加载实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.