JavaFX(使用fxml)和自定义类不';t载荷
我正在尝试上载代码,但IntelliJ和gitHub出现问题。但问题在于,当我试图加载包含自定义类的第二个场景时,找不到自定义类。有没有任何例子有多个场景和自定义类可以引导我走上正确的道路 我首先使用了这个示例,然后添加了我的自定义类(extends TextField),但当我单击按钮转到第二个场景时,它就崩溃了 控制器类JavaFX(使用fxml)和自定义类不';t载荷,javafx,Javafx,我正在尝试上载代码,但IntelliJ和gitHub出现问题。但问题在于,当我试图加载包含自定义类的第二个场景时,找不到自定义类。有没有任何例子有多个场景和自定义类可以引导我走上正确的道路 我首先使用了这个示例,然后添加了我的自定义类(extends TextField),但当我单击按钮转到第二个场景时,它就崩溃了 控制器类 package sample; import javafx.event.ActionEvent; import javafx.fxml.FXML; import jav
package sample;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import sample.numberTextField;
import java.io.IOException;
public class Controller {
@FXML
Label lbl1;
@FXML
Button btn1;
@FXML
Label lbl2;
@FXML
Button btn2;
@FXML
numberTextField txtField1;
@FXML
public void handleButtonClick(ActionEvent event) throws IOException {
Stage stage;
Parent root;
if (event.getSource() == btn1) {
stage = (Stage) btn1.getScene().getWindow();
root = FXMLLoader.load(getClass().getResource("sample2.fxml"));
} else {
stage = (Stage) btn2.getScene().getWindow();
root = FXMLLoader.load(getClass().getResource("sample.fxml"));
}
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
}
fxml
我注意到,我在类文件numberTextField上使用的命名约定需要更改为numberTextField。我一做到这一点,它就开始按计划工作。你必须喜欢区分大小写,我不记得在任何地方看到过任何说明我做不到的东西,但总的来说我让它工作
感谢大家的帮助。请发布(而不是链接)足够的代码来重现问题,并包括堆栈跟踪。查看您的.fxml文件是否缺少自定义类的导入语句。没有看到代码,我们只能猜测
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import sample.numberTextField?>
<GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<columnConstraints>
<ColumnConstraints />
</columnConstraints>
<rowConstraints>
<RowConstraints />
</rowConstraints>
<children>
<AnchorPane prefHeight="150.0" prefWidth="250.0" style="-fx-background-color: blue;">
<children>
<Label fx:id="lbl2" layoutX="81.0" layoutY="29.0" text="This is scene 2" textFill="WHITE" />
<Button fx:id="btn2" layoutX="53.0" layoutY="101.0" mnemonicParsing="false" onAction="#handleButtonClick" text="click to go to scene 1" />
<numberTextField fx:id="txtField1" layoutX="44.0" layoutY="55.0" />
</children>
</AnchorPane>
</children>
</GridPane>