小编Mat*_*att的帖子

为什么实例化JavaFX场景控件会破坏布局

我正在尝试使用javafx创建一个简单的数据入口应用程序,并且在添加场景控件时遇到了问题。即使在将控件添加到场景之前,显示也会丢失其填充色!只需实例化控件就可以破坏它。

我在Windows上的Oracle Java 8上运行,但是我在Windows上尝试过OpenJDK 8,在Linux上尝试过OpenJDk / OpenJFX 13,它们的行为都相同。我将代码剥离给小熊最小值,以重新创建问题。

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;

public class BasicTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        Rectangle r = new Rectangle();
        r.setWidth(200);
        r.setHeight(50);
        r.setFill(Color.BLUE);
        r.setStroke(Color.WHITE);
        r.setStrokeWidth(2);

        Text t = new Text();
        t.setText("Confirm");
        t.setFill(Color.WHITE);
        t.setFont(Font.font("null", 40));

        StackPane sp = new StackPane(r);
        sp.getChildren().add(t);
        sp.setMaxWidth(200);

        t.setTranslateY(-2);

        Label b = new Label("Click me");//Comment this line out after first run

        Scene scene = …
Run Code Online (Sandbox Code Playgroud)

java javafx

7
推荐指数
1
解决办法
88
查看次数

JavaFX 选项卡将进度指示器设置为标题

我在 JavaFX 中使用 TabPane 并在任务运行时创建它们。任务完成后,我将选项卡与包含任务结果的新选项卡交换。

我想在选项卡的标题中显示一个加载微调器(javaFX 术语:进度指示器)。

那可能吗?

像这样:

在此处输入图片说明

javafx

5
推荐指数
1
解决办法
32
查看次数

将项目导出到 jar 时出现“java.lang.IllegalStateException:工具包未初始化”

当我在开发环境(Eclipse)中启动应用程序时,它会运行,但是,当我尝试将其导出到可运行的 .jar 文件时,它会出现以下错误:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at mallApp.MainTwo.<clinit>(MainTwo.java:24)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:59)
Caused by: java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:410)
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:405)
    at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:695)
    at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:657)
    at javafx.scene.control.Control.<clinit>(Control.java:99)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

问题是“由以下原因引起:java.lang.IllegalStateException:工具包未初始化”。

这里有很多关于类似问题的线程,但它们似乎都不完全相同,而且我尝试过的修复对我不起作用。我的类扩展了 Application,因此在 main 方法中具有 Application.launch(args) 。这应该初始化 Toolkit,但在导出到 .jar 时由于某种原因却没有初始化。

当我尝试以不同的方式添加 Toolkit 时,例如使用 JFXPanel 或Platform.startup(Runnable),它会给出相反的错误,提示 Toolkit 已初始化。

public class MainTwo extends Application {

        ...

    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage arg0) throws Exception {
        model = …
Run Code Online (Sandbox Code Playgroud)

java javafx initialization

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

如何使圆形按钮之外的区域在 javafx 中不可点击

当我像这样制作圆形按钮时

Button b = new Button();
b.setShape(new Circle(20.0));
b.setText("BUTTON");
b.setStyle("-fx-background-radius: 50em; " +
           "-fx-min-width: 50px; " +
           "-fx-min-height: 50px; ");
Run Code Online (Sandbox Code Playgroud)

它仍然可以在圆圈外的区域中单击,就像我在这里标记为红色的那个:

在此处输入图片说明

有没有办法来解决这个问题?

javafx

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

标签 统计

javafx ×4

java ×2

initialization ×1