当前位置: 首页 > 知识库问答 >
问题:

无法修改注入到我的控制器类的JavaFx@FXML分页

相德宇
2023-03-14

我已经使用scene builder设计了我的fxml。分页默认带有10页和页码按钮。我想根据我的场景更改这些默认内容。

这是我在我的控制器中所做的:

  @FXML
    private Pagination pagination;
    ...


    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        pagination = new Pagination(7, 0);
        pagination.setPageFactory((Integer pageIndex)->createUserInfo(pageIndex));
        pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET);

    }
    ...

private VBox createUserInfo(int pageIndex) {
    VBox box = new VBox();
    ImageView iv = new ImageView(images[pageIndex]);
    box.setAlignment(Pos.CENTER);
    Label desc = new Label("PAGE Number");
    box.getChildren().addAll(iv, desc);
    return box;
}

这是我的FXML:

<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="538.0" prefWidth="747.0" style="-fx-background-color: #e8eaf6;" stylesheets="@../styles/inventory_fxml.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.inventory.controller.UserMange_fxmlController">
   <children>
      <Group nodeOrientation="LEFT_TO_RIGHT">
         <children>
            <VBox fx:id="vbox" prefHeight="483.0" prefWidth="685.0">
               <children>
                  <Pagination fx:id="pagination" prefHeight="352.0" prefWidth="685.0" stylesheets="@../styles/inventory_fxml.css" />

                 ....

但在运行应用程序时,我仍然会得到默认配置。我的代码有什么问题吗??提前谢谢。。。。

共有1个答案

梁骞仕
2023-03-14

您正在创建一个新的分页,然后对其进行配置,而不是配置您在FXML中定义的分页(即显示在UI中的分页)。

底线是,您永远不应该将新对象分配给带注释的引用。

而不是

pagination = new Pagination(7, 0);

pagination.setPageCount(7);
pagination.setCurrentPageIndex(0);
 类似资料:
  • 问题内容: 我试图在JavaFX中获得TableView来动态显示内容。 当我运行程序时,出现此错误: 我的控制器名为“ UserInterfaceController.java”,它与FXML文件位于同一软件包下,我也已将该软件包导入了FXML中。为什么找不到控制器? FXML文件: 控制器: 主类: 问题答案: 使用FXML的全限定名来引用您的控制器: 后续问题的答案 对以下问题的回答解释了为

  • 我试图在JavaFX中获得一个TableView来动态显示内容。 当我运行程序时,出现以下错误: 我的控制器名为“UserInterfaceController.java”,它与FXML文件在同一个包下,我也在FXML中导入了包。为什么找不到控制器? FXML文件: 控制器: 主要类:

  • 是关于JavaFX的。当我想在Scene Builder中注入fx:id时,我会得到这样的警告: 在FXML控制器类中找不到id为'something'的可注入字段。 我想忽略它,并创建了一个函数,但它也不起作用。我创建了mainController类并将其添加到我的FXML文件中。以下是我的代码… MainController.java 我在我的旧项目中做了同样的事情,它们像一个魅力一样工作。但

  • 控制台-频道-分类-修改分类 接口URL {youke-url}/console/Index.php?c=live&a=updateCategory&timestamp=1607677497&access_key=abc&sign=5b6e65a6881107b9a6d61bb8fd730cb5071f7911 请求方式 POST Content-Type form-data 请求Query参数