我对FXML及其语法完全陌生,因此我必须this 关于该主题的Oracle教程。
我已经按照指定完成了图4-2所示的一切(除了我使用Eclipse而不是NetBeans这一事实),但是一旦我运行项目,这就是我得到的控制台:
Exception in Application start method
虽然舞台及其组件都没有出现。
我已在互联网上做过一些研究,但我无法找到有关此主题的信息。 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 {
}
提前致谢!
答案 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感谢您的帮助。