- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我习惯于用 JavaFx 编写代码,如下所示,因为这就是我几年前学习的方式。
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.stage.*;
public class test extends Application {
int c=0;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Demo");
Button b = new Button("Click me");
Label l = new Label("Count=" + c);
VBox v = new VBox(20);
v.getChildren().addAll(b, l);
b.setOnAction(event -> {
c++;
l.setText("Count=" +c);
});
primaryStage.setScene(new Scene(v, 300, 300));
primaryStage.show();
}
}
我最近安装了 JetBrains IntelliJ IDEA Ultimate Edition 2018.1.6,我发现要打开 PrimaryStage 窗口,我需要一个 fxml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.GridPane?>
<GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Main">
</GridPane>
我必须这样做,
primaryStage.setScene(new Scene(FXMLLoader.load(getClass().getResource("sample.fxml")), 300, 300));
如果我运行第一个代码片段,则不会显示任何内容。但是,如果我用 FXMLLoader.load(getClass().getResources("sample.fxml")) 替换 VBox v,则只会显示一个没有按钮和标签的窗口。 有没有办法可以忽略 fxml 文件的使用?或者我可以使用标准编码方式(第一个代码片段)并让编译器将其更改为 fxml 格式吗?
那是因为我想在网格布局中使用 100x100 的标签,而每个标签都是一个像素。因此,在代码中,很容易运行嵌套 for 循环来使用二维数组初始化和寻址每个标签。但是在 fxml 中初始化 1000 个标签太冗长、费力且不合逻辑。
我从来不需要在 JetBrains IntelliJ IDEA Community Edition 2017.0.2 中执行此类操作。当我升级到 Ultimate Edition 2018.1.6 时,出现这些错误。
最佳答案
您绝对可以在没有 FXML 的情况下将 IntelliJ 与 JavaFX 结合使用。
问:有没有办法可以忽略 fxml 文件的使用?
答:考虑到您在创建新的 JavaFX 项目时引用从 IntelliJ 获得的默认设置的代码片段,是的,它们的默认设置使用 .fxml
但事实并非如此。不需要使用它。您可以删除该 sample.fxml
文件并根据需要重写 start
。
旁注:没有什么可以阻止您在同一项目中同时使用 fxml 和代码方法,在某些情况下使用 fxml 是更好的方法,而在其他情况下最好使用代码。
问:或者我可以使用标准编码方式(第一个代码片段)并让编译器将其更改为 fxml 格式吗?
答:没有办法将 Java 代码转换为 fxml
,但正如我已经说过的,由您决定使用哪一种,您可以甚至在同一个项目中使用它们。
关于java - 以编程方式设置 .fxml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556872/
我的主 UI 是在 FXML 文件中定义的,并且应该包含人员列表。一个人会显示一张图片和一些不同的只读文本行(姓名、年龄等......)该列表本身在整个运行时会不断变化。 (增删改查) 我知道可以创建
正如标题所述,构建表并将所有内容添加到表的初始化方法与 FXMLLoader 之间存在一定的冲突,FXMLLoader 应该为弹出窗口加载 FXML。 我的代码: 主要: import javafx.
我正在创建丰富的 UI 应用程序,我在 FXML 中使用 FXML,每个部分都有单独的 Controller 。我决定关注this教程并使用我的 fxml 作为组件。所以我使用类作为 Controll
你好, 我有以下问题。 是否可以创建一个主 fxml 文件并放置/包含另一个应该具有用户定义属性的 fxml 文件。 例如,我有:main.fxml 和一个fan_object.fxml 然后将 3
我正在尝试制作一个具有用于制作新项目的对话框的应用程序。我已经对其进行了编程,但想要清理文件结构,因此我将对话框及其 Controller 的 fxml 移至它们自己的包中。该对话框的文件位于名为 n
你好, 我有以下问题。 是否可以创建一个主 fxml 文件并放置/包含另一个应该具有用户定义属性的 fxml 文件。 例如,我有:main.fxml 和一个fan_object.fxml 然后将 3
我的应用程序有选项卡式 Pane ,因此为了保持 fxml 文件易于管理,我有一个包含选项卡的主 fxml 文件,以及每个其他选项卡的单独 fxml 文件。这工作正常,但由于某种原因,应用程序已停止加
如果状态为“1”,我想加载另一个 FXML 文件。但在下面的代码中,它不会从初始化加载另一个 FXML。如果我使用按钮,那么此代码可以工作,但我想在没有任何按钮的情况下执行此操作。谁能帮我提个建议吗?
我是 JavaFX 的新手,我想知道是否有办法将一个 fxml 文件放在 child.fxml 中,例如 parent.fxml。 为什么我需要这个? 想法是,我想创建独立的屏幕(小屏幕)并编写一个父
我的程序有一个主要的 FXML 文档,其中包含 TabPane .对于每个选项卡,我希望它有自己的 Controller 和 fxml 文件。当我尝试将外部 fmxl 文件包含到主 fxml 文档中时
我有一个用 fxml 编写的边框 Pane ,它的左 Pane 和中央 Pane 具有可互换的布局。 边框 fxml:
在上面的 fxml 中,我有许多使用相同源 fx:include source="MyCombo.fxml"的 fxml include 标记。可以这样做吗?这样做会影响 F
我需要创建许多不同的 FXML 文件,并且每个文件都有一致的布局。每个都有一个 AnchorPane,它将保存单独的内容。 有没有办法加载“基本”FXML 文件,然后加载第二个 FXML 文件,并将数
我正在尝试创建一个非常简单的带有黑色背景的VBox。就这样。没有其他的。我使用 FXML 来描述我的 VBox。 样本.fxml: Controller .java: package sa
我不明白为什么我总是有同样的错误: image 当我尝试在我的strcuture项目中添加库(fx java)时。 我的build.gradle: plugins { id 'java'
这就是我想要实现的目标。 /Package A/ /Package A/ApplicationController.java /Package A/Application.fxml 在我的 Appli
我有两个 FXML 文件。第一个描述了要显示的第一个 Pane ,其中包含一个选项卡 Pane 、一个菜单和一个菜单项,该菜单项应该在选项卡 Pane 中打开一个新选项卡并在其中绘制一组新节点。这是代
我想要做的是,如果调整场景(应用程序窗口)的大小,我想相应地调整窗口内内容的大小。我已经发布了到目前为止我已经完成的代码 加载器类 public class ResizingButtons exten
我使用的是 Java JDK 13 和 FontAwesomeFX 11。 我有一个 FXML 文件,其中包含一些 FontAwesomeIconViews,但是当将该文件加载到我的 Controll
我明白了 javafx.fxml.LoadException: 当我使用以下代码行加载 fxml 文件时。 AnchorPane anchorPane = (AnchorPane)loader.loa
我是一名优秀的程序员,十分优秀!