java - 如何从普通的 java 类调用 javafx

标签 java user-interface javafx fxml

我想从普通类调用/打开 gui/fxml 文件,我真的很难找到一种方法来做到这一点,我尝试实例化 Controller 类,但我没有启动功能,甚至有可能做我想做的事吗?

普通类

    public class ReadXMLFile {

  public static void main(String argv[]) {

    }


}

fxml文档

    <?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>


<AnchorPane id="AnchorPane" prefHeight="442.0" prefWidth="449.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.141" fx:controller="gis_map.CitizenScheduledController">
   <children>
      <TableView layoutX="1.0" layoutY="-1.0" prefHeight="384.0" prefWidth="447.0">
        <columns>
          <TableColumn prefWidth="75.0" text="CitizenId" />
          <TableColumn prefWidth="75.0" text="Name" />
            <TableColumn prefWidth="75.0" text="Address" />
            <TableColumn prefWidth="75.0" text="Arrival" />
            <TableColumn prefWidth="75.0" text="Departure" />
            <TableColumn prefWidth="75.0" text="Actions" />
        </columns>
      </TableView>
      <Button layoutX="373.0" layoutY="396.0" mnemonicParsing="false" text="Approve" />
   </children>
</AnchorPane>

Controller 类

    package gis_map;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.Initializable;


public class CitizenScheduledController implements Initializable {


    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    

}

最佳答案

Is it possible to do what I'm trying to do?

不(至少,不容易,或者以一种有意义的方式)。

JavaFX 应用程序的生命周期由 Application 类的实例控制。此外,您需要启动JavaFX工具包并设置FX应用程序线程运行。静态 Application.launch(...) 方法可以完成此任务,并创建所需的 Application 类实例并在其上调用适当的生命周期方法。

因此,只需遵循标准模式,将您的 ReadXMLFile 类创建为 Application 的子类,将 main(...)方法只需调用launch(),并定义start()方法来加载FXML等。

关于java - 如何从普通的 java 类调用 javafx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117496/

相关文章:

java - 调用 RESTEasy 客户端代理接口(interface),如何指定端点将使用哪种内容类型?

c++ - 在 C++ 中编程 GUI

android - 更新 UI/runOnUiThread/final 变量 : How to write lean code that does UI updating when called from another Thread

ios - 如何更改在 Storyboard 中创建的 UIImageView 的渲染顺序

java - 如何重置ComboBox并显示PromptText?

java - 为什么我的Spark程序在IntelliJ中运行良好,但提交后抛出 "org.apache.spark.SparkException: Task not serializable"?

java - 用 ASCII 替换 Unicode

java - Kafka 产生多值消息

java - 为什么我的 JavaFX TableView 是空的

java - 在JavaFx中,如何从网格 Pane 中删除特定节点及其坐标?