标签: javafx-11

Eclipse 4.9 上的 Java 11 和 E(fx)clipse JavaFX 插件:发生错误 - 请参阅日志文件

我无法使用 Java 11 和 E(fx)clipse JavaFX 插件运行 Eclipse 2018-09 (4.9)。

我运行了Help -> Install new softwareE(fx)clipse的典型过程,但在重新启动后,Eclipse 完全崩溃:我什至无法再打开 Eclipse 以获取新工作区!

当我尝试运行 Eclipse 时,出现一个对话框:

“发生错误。请参阅日志文件 C:\workspace\.metadata\.log”

我已将该日志文件的副本放在我的 Github 上

好吧,我可以使用这个手动库设置来运行 hello world JavaFX 应用程序,但我真的很想让 E(fx)clipse 运行,以便获得 Eclipse 菜单选项和功能。那么如何解决呢?谢谢。

java eclipse eclipse-plugin javafx javafx-11

3
推荐指数
1
解决办法
2578
查看次数

如何翻转Javafx滑块的轴

我通过修改javafx滑块的css使用javafx创建标尺,并且创建了类似以下内容:

我试图做到这一点:

所以我试图通过调用setRotate()method 来旋转滑块,但是它变成了这样:

这是我的滑块代码:

Slider hRuler = new Slider(0, 160, 10);
hRuler.showTickMarksProperty().setValue(true);
hRuler.showTickLabelsProperty().setValue(true);
hRuler.setRotate(180);

Slider vRuler = new Slider(0, 100, 10);
vRuler.setOrientation(Orientation.VERTICAL);
vRuler.showTickMarksProperty().setValue(true);
vRuler.showTickLabelsProperty().setValue(true);
vRuler.setRotate(180);
Run Code Online (Sandbox Code Playgroud)

这是我的滑块CSS代码:

.slider > .thumb,
.slider > .thumb:hover,
.slider:focused > .thumb{
    -fx-background-color: #ff6a6a;
    -fx-background-insets: 2 0 -23 0;
    -fx-padding: 1 1 0 1;
    -fx-background-radius: 0;
}

.slider:vertical > .thumb,
.slider:vertical > .thumb:hover,
.slider:vertical:focused > .thumb{
    -fx-background-color: #ff6a6a;
    -fx-background-insets: 0 -23 0 2;
    -fx-padding: 1 0 1 1;
    -fx-background-radius: 0;
}

.slider > .track, …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-11

3
推荐指数
1
解决办法
191
查看次数

使用 Java 11 在 Eclipse 中混合模块化和非模块化开发

自从我做 Java 编程以来已经有一段时间了,我很惊讶地回到它,因为整个项目对我来说都是陌生的。

我在混合模块化和非模块化环境中使用 Eclipse (2018-09, 4.9.0) 标准 Java 项目时遇到问题。具体来说,我正在尝试使用 Eclipse 平台(没有 Gradle 或 Maven 的基础 Java 项目)结合 JavaFX 11(模块化)和 Apache POI 4.1(非模块化)。

在我的 module-info.java 中,我有以下内容,

module myapp {
        requires javafx.base;
        requires javafx.graphics;
        requires javafx.fxml;
        requires javafx.controls;
        requires javafx.web;

        exports myapp.gui;

        opens myapp.gui to javafx.fxml;
}
Run Code Online (Sandbox Code Playgroud)

我发现无论我在哪里有 Apache POI 代码,我都会在 Eclipse 中收到以下错误

The import cannot be resolved
Run Code Online (Sandbox Code Playgroud)

使用为 Apache POI 创建的自动模块在 module-info.java 中添加以下内容,

        requires poi;
Run Code Online (Sandbox Code Playgroud)

在 Eclipse 中产生一个警告,表明自动模块不稳定,这似乎被识别但继续产生无法解决的错误。

我还尝试将主要的 POI jar 文件放在类路径中,与模块路径相反,但无济于事。

涉及与 UI 分离的 Apache POI 的代码有效。我只需要删除 module-info.java 的使用,我认为它会将项目置于某种没有模块化的遗留开发模式中? …

eclipse modular apache-poi java-11 javafx-11

3
推荐指数
1
解决办法
2400
查看次数

使用 gradle 6.3、OpenJDK 14 和 OpenJFX 14 部署 JavaFX 应用程序

我正在使用 gradle 6.3、OpenJDK 14 和 OpenJFX 14 以及 IntelliJ 开发一个 JavaFX 应用程序,我想部署它(创建一个 exe 文件)。

\n\n

我曾经在 Netbeans 11 下使用 JDK 8 制作 JavaFX 应用程序,过程很简单:

\n\n
    \n
  1. 提出申请
  2. \n
  3. 清洁和构建
  4. \n
  5. 在 dist 文件夹中查找 jar(当我单击它时效果很好)
  6. \n
  7. 使用 Launch4j 将其转换为 exe
  8. \n
  9. 瞧\xc3\xa0!
  10. \n
\n\n

由于我要迁移到 OpenJDK 14,我想确保我可以部署我正在制作的应用程序,因此我创建了一个应用程序,并且在运行它时一切正常(在 IntelliJ 中)。我看到了一些关于如何使用 gradle 部署 javafx 应用程序的教程,我想到了这个过程:

\n\n
    \n
  1. 在 gradle 窗口(屏幕右上角)上,单击 distribution > distZip
  2. \n
  3. 在 build\\distibutions 中查找生成的 ZIP 文件并解压
  4. \n
  5. 您将找到一个binlib文件夹:在bin文件夹中,我找到了我的项目的一个.bat文件,单击它时,我的应用程序启动并且一切正常。在lib文件夹中,我找到了我在项目中使用的所有 jar 文件以及我的 …

java javafx gradle javafx-11

3
推荐指数
1
解决办法
1574
查看次数

安装在 Windows 中的字体未显示在 SceneBuilder 中

我刚开始使用 SceneBuilder 和 JavaFX。我打开了一个测试项目,正在检查 SceneBuilder。将 Label 添加到 AnchorPane 并希望更改文本的字体。但是我没有看到我的系统中安装了任何字体。我之前已经在 Windows 中安装了一些字体(Next Art、Montserrat、Bebas Neue)。它们都没有显示在 SceneBuilder 中。我没有找到有关此问题的任何有用信息。我看过 YouTube 视频,人们可以直接从 SceneBuilder 中选择自定义字体。难道我做错了什么?

PS:我知道我可以简单地编写一些代码并使用 CSS 集成任何字体。但还想在 SceneBuilder 中做到这一点。

(我使用 Java SDK v.14.0.2、JavaFX v.11.0.2 和 SceneBuilder v.11.0.0)

java scenebuilder javafx-11

3
推荐指数
1
解决办法
221
查看次数

JavaFX 真的可以在非模块化环境中使用吗?

我尝试按照以下位置的说明使用 JavaFX:

https://openjfx.io/openjfx-docs/下的“JavaFX 和 IntelliJ”->“非模块化 Maven”

完成步骤 1 和 2(安装和验证)后,我尝试从 IntelliJ 而不是通过 Maven 插件运行一个非常简单的程序。

TraderWindow.java

public class TraderWindow extends Application {

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

    @Override
    @SneakyThrows
    public void start(Stage primaryStage) {
        Scene scene = FXMLLoader.load(getClass().getResource("/TraderWindow.fxml"));
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

交易窗口.fxml

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

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" …
Run Code Online (Sandbox Code Playgroud)

java javafx java-platform-module-system javafx-11 java-14

3
推荐指数
1
解决办法
2058
查看次数

JavaFX 11:将图形添加到右侧的TitledPane

这与三年前提出的先前问题有关。 JavaFX 8-在右侧的TitledPane中添加图形

我不喜欢这种解决方案,也没有找到其他解决方案。

自从最初的问题要求JavaFX 8以来,JavaFX发生了很多事情。最近发布了JavaFX 11。

我有一个使用JavaFX 11的项目。TitledPane图形设置有HBox,该HBox包含一个我想放置在标题最右侧的按钮。

TitledPane titledPane = new TitledPane();
titledPane.setText("Title");

HBox titleBox = new HBox();
Button b1 = new Button("ClickMe!");
titleBox.getChildren().add(b1);

titledPane.setGraphic(titleBox);
titledPane.setContentDisplay(ContentDisplay.RIGHT);
Run Code Online (Sandbox Code Playgroud)

将TitlePane Alignment设置为CENTER_RIGHT会将标题放置在右侧,但是将整个标题,文本和图形放置在右侧。

titledPane.setAlignment(Pos.CENTER_RIGHT);
Run Code Online (Sandbox Code Playgroud)

我已经尝试过在TitledPane图形,HBox,GridPane中使用不同的容器。设置增长,对齐,fillWidth等。没有任何作用。

没有设置人为的图形间隙,我看不到可行的解决方案,但是上述参考问题中提出了该建议。这是一个丑陋的骇客。适用于加速中的多个TitleedPanes。但是,Button并未放置在确切的末端,标题右侧仍然有更多空间。

    primaryStage.setOnShown(e -> {
        for (TitledPane titledPane : panes) {
            Node titleRegion = titledPane.lookup(".title");
            Insets padding = ((StackPane) titleRegion).getPadding();
            double graphicWidth = titledPane.getGraphic().getLayoutBounds().getWidth();
            double arrowWidth = titleRegion.lookup(".arrow-button").getLayoutBounds().getWidth();
            double labelWidth = titleRegion.lookup(".text").getLayoutBounds().getWidth();
            double nodesWidth = graphicWidth + padding.getLeft() + padding.getRight() + arrowWidth + labelWidth;
            titledPane.graphicTextGapProperty().bind(titledPane.widthProperty().subtract(nodesWidth));
        }
    });
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-8 javafx-11

2
推荐指数
1
解决办法
573
查看次数

SwingFXUtils发生了什么?

我刚刚开始使用JavaFX 11,SwingFXUtils似乎不见了(或重命名了?)

我尝试手动下载它,但是模块系统抱怨,但import sun.awt.image.IntegerComponentRaster;无法正常工作。

我需要将Swing Icon转换为JavaFX图像。

javafx javafx-11

2
推荐指数
1
解决办法
1508
查看次数

Java FX模块化应用程序,未找到模块(Java 11,Intellij)

您好,我的模块化Java FX应用程序有问题。

首先,我使用Intellij向导创建了一个JavaFX Project。
我添加了Java FX库:

使用JavaFX lib的Project Strucutre

JavaFX模块得到认可。我的module-info.java:

模块信息

我还添加了VM选项:

VM选项和配置

但是我总是收到这个错误信息:

错误信息

“在启动层
java.lang.module.FindException的初始化期间发生错误:找不到模块HelloFX”

谢谢。

java module javafx intellij-idea javafx-11

2
推荐指数
1
解决办法
4026
查看次数

在 IDEA 中使用带有 JavaFX 11 的 SceneBuilder

我正在使用 IDEA(使用 OpenJDK 11),并且我正在尝试使用 SceneBuilder 来显示我的 FXML 文件。它有效,除非我使用继承的 JavaFX 组件,例如:

public class MyLabel extends Label {
    public MyLabel(){
        super();
        setText("42");
    }
}
Run Code Online (Sandbox Code Playgroud)

我总是收到一个错误:

java.lang.UnsupportedClassVersionError: sample/MyLabel has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Run Code Online (Sandbox Code Playgroud)

所以我查看了我的 IDEA 安装文件夹(C:\Users\me\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\xxx.xxxx.xxx\plugins\javaFX\lib),我看到IDEA 使用的是 SceneBuilder 的 Java 8 版本(“SceneBuilderKit-8.2.0.jar”)。

我想知道如何在 IDEA 中使用Java 11 版本。我已经尝试在参数中填充 SceneBuilder 路径,但是没有用。

javafx intellij-idea scenebuilder javafx-11

2
推荐指数
1
解决办法
5090
查看次数