2013-07-01 78 views
0

我测试的JavaFX应用和遇到错误现在不知道很多关于JavaFX的,仍然在学习它。我认为这是因为label.setText(numbers[0]);,如果我做@FXML Label lebal = new Label();,它不会改变行动。谢谢。凑了初始化错误,当我尝试运行我的JavaFX应用程序

我的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); 
} 
} 

我的控制器类:

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()); 
     } 
    }); 
} 

}

错误我得到

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 
+0

不确定,但尝试把你的文件放在桌面文件夹之外,避免名称中的空格,并确保资源文件位于应该在哪里。 – surfealokesea

回答

相关问题