首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化方法不调用

初始化方法不调用
EN

Stack Overflow用户
提问于 2018-05-15 18:11:14
回答 1查看 349关注 0票数 0

我想在我的javafx项目中添加一个旋转器,包括maxmimum(1)和minimum(5)。

问题是初始化方法没有调用。什么时候应该调用初始化?为什么不呢?

这是App.java代码:

代码语言:javascript
复制
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class AverageApp extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

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

}

这是我的FXMLController.java代码

代码语言:javascript
复制
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;

import javafx.scene.input.*;

public class FXMLDocumentController implements Initializable{

    @FXML private Spinner spi;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        System.out.println("HI");
        this.spi.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 5));
    }

}

这是我的FXMLDocument.fxml代码:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.web.*?>
<?import javafx.scene.image.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="714.0" prefWidth="584.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <AnchorPane layoutX="108.0" layoutY="30.0">
         <children>
            <Spinner fx:id="spi" />
         </children>
      </AnchorPane>
      <Label layoutX="278.0" layoutY="34.0" text="تعداد واحد :" />
      <Label layoutX="510.0" layoutY="34.0" text="نام درس :" />
      <TextField alignment="CENTER" layoutX="380.0" layoutY="30.0" nodeOrientation="LEFT_TO_RIGHT" prefHeight="25.0" prefWidth="120.0" />
      <Button layoutX="34.0" layoutY="98.0" mnemonicParsing="false" text="اضافه کردن" />
      <Label layoutX="520.0" layoutY="123.0" text="Label" />
      <Label layoutX="520.0" layoutY="162.0" text="Label" />
   </children>
</AnchorPane>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-15 18:27:46

基于@fabian,您的FXML缺少如下内容:

代码语言:javascript
复制
fx:controller="yourpackagename.FXMLDocumentController ">

它应该是根节点的一部分:

代码语言:javascript
复制
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="714.0" prefWidth="584.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="yourpackagename.FXMLDocumentController ">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50356749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档