运行Java FXML项目时出现异常(Application start方法中的异常)

时间:2016-06-12 11:32:57

标签: java exception fxml

我对FXML及其语法完全陌生,因此我必须this 关于该主题的Oracle教程。

我已经按照指定完成了图4-2所示的一切(除了我使用Eclipse而不是NetBeans这一事实),但是一旦我运行项目,这就是我得到的控制台:

Exception in Application start method

虽然舞台及其组件都没有出现。

此外,此窗口显示: enter image description here

我已在互联网上做过一些研究,但我无法找到有关此主题的信息。 StackOverFlow上有关于它的问题,但问题的原因并不相同。

FXMLTableView.java(主要方法):

package application;

public class FXMLTableView extends Application{

public static void main(String[] args){
    launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {

    Pane root = (Pane) FXMLLoader.load(getClass().getResource("fxml_tableview.fxml"));

    primaryStage.setTitle("This is a title");
    primaryStage.setScene(new Scene(root, 400, 400));
    primaryStage.show();

    }
}

fxml_tableview.fxml

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

<?import javafx.scene.layout.AnchorPane?>

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0"
    xmlns:fx="http://javafx.com/fxml"
    fx:controller="fxmltableview.FXMLTableViewController">
    <padding>
        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
    </padding>
    <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book"                
        GridPane.columnIndex="0" GridPane.rowIndex="0">
    </Label>
    <TableView fx:id="tableView" GridPane.columnIndex="0" 
        GridPane.rowIndex="1">
    </TableView>
</GridPane>

我认为有必要显示FXMLTableViewController,因为我还没有使用它,因为它几乎是空的,但为了以防万一:

package application;

public class FXMLTableViewController {

}

提前致谢!

1 个答案:

答案 0 :(得分:0)

<强>解决

问题是由于我没有导入我在FXML文件中使用的每个类的库。

这是必须的:

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0"
   xmlns:fx="http://javafx.com/fxml"
   fx:controller="fxmltableview.FXMLTableViewController">
   <padding>
      <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
   </padding>
   <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book"                
    GridPane.columnIndex="0" GridPane.rowIndex="0">
   </Label>
   <TableView fx:id="tableView" GridPane.columnIndex="0" 
       GridPane.rowIndex="1">
   </TableView>
</GridPane>

@ n247s感谢您的帮助。