JavaFx 调用目标异常
JavaFx Invocation Target Expception
我通过使用 Scene Builder 创建样式表来编写这个简单的程序,但它不起作用。
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Stile.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
这是我的 .fxml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.control.ListView?>
<?import javafx.geometry.Insets?>
<StackPane prefHeight="355.0" prefWidth="402.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafxml.esempio.mvc.ListController">
<children>
<BorderPane prefHeight="304.0" prefWidth="0.0">
<bottom>
<TextField id="testo" prefHeight="97.0" prefWidth="248.0" BorderPane.alignment="CENTER" />
</bottom>
<left>
<ScrollBar id="scrollbar" orientation="VERTICAL" BorderPane.alignment="CENTER" />
</left>
<center>
<ListView id="lista" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
</center>
<top>
<MenuBar id="barra" BorderPane.alignment="CENTER">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
</top>
</BorderPane>
</children>
<padding>
<Insets bottom="10" left="10" right="10" top="10" />
</padding>
</StackPane>
需要单独添加元素吗?如果我想添加控制器,如何从 fxml 中提取单个元素?
在 fxml 中,您要声明一个控制器:
fx:controller="javafxml.esempio.mvc.ListController"
你只需要创建它。
我通过使用 Scene Builder 创建样式表来编写这个简单的程序,但它不起作用。
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Stile.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
这是我的 .fxml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.control.ListView?>
<?import javafx.geometry.Insets?>
<StackPane prefHeight="355.0" prefWidth="402.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafxml.esempio.mvc.ListController">
<children>
<BorderPane prefHeight="304.0" prefWidth="0.0">
<bottom>
<TextField id="testo" prefHeight="97.0" prefWidth="248.0" BorderPane.alignment="CENTER" />
</bottom>
<left>
<ScrollBar id="scrollbar" orientation="VERTICAL" BorderPane.alignment="CENTER" />
</left>
<center>
<ListView id="lista" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
</center>
<top>
<MenuBar id="barra" BorderPane.alignment="CENTER">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
</top>
</BorderPane>
</children>
<padding>
<Insets bottom="10" left="10" right="10" top="10" />
</padding>
</StackPane>
需要单独添加元素吗?如果我想添加控制器,如何从 fxml 中提取单个元素?
在 fxml 中,您要声明一个控制器:
fx:controller="javafxml.esempio.mvc.ListController"
你只需要创建它。