【问题标题】:JavaFX rendering issue on OSX after java upgradejava升级后OSX上的JavaFX渲染问题
【发布时间】:2015-12-08 02:39:06
【问题描述】:

在我将 java 从 8u51 升级到 8u60 之前,我的带有 javafx 3D 对象的应用程序运行良好。 升级后,UI 是上下颠倒的。 这是我使用以下测试代码得到的结果。似乎 y 轴在渲染中是反转的,但在功能上却没有。

我尝试将 -Dprism.order=sw 作为 VM 选项。这解决了测试问题, 但随后不允许渲染 javafx 3D 对象。

有谁知道如何解决这个 java/javafx 问题。我将尝试下载并安装 Java 8u51。

注意,我已阅读JavaFX Mac OS strange rendering

import javafx.application.Application;
import javafx.scene.PerspectiveCamera;
import javafx.scene.SceneAntialiasing;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.Scene;

public class TestAppj extends Application {
    public static void main(String[] args) {  Application.launch(args); }
        public void start(Stage primaryStage) {
            primaryStage.setTitle("Test Stage");
            TabPane tabbedPane = new TabPane(new Tab("Tools", new BorderPane()), new Tab("Things", new BorderPane()));
            MenuBar menuBar = new MenuBar(
                    new Menu("File", null, new MenuItem("Open"), new     MenuItem("New"), new MenuItem("Save")),
                new Menu("Edit", null, new MenuItem("Cut"), new MenuItem("Copy"),   new MenuItem("Paste")));
          BorderPane root = new BorderPane();
        root.setTop(new VBox(menuBar, new ToolBar()));
        root.setCenter(tabbedPane);
        Scene theScene = new Scene(root, 500, 500, true, SceneAntialiasing.BALANCED);
        theScene.setCamera(new PerspectiveCamera());
        primaryStage.setScene(theScene);
        primaryStage.show();
    }
}

【问题讨论】:

    标签: java macos javafx 3d


    【解决方案1】:

    这是重现您在 Mac 上使用 8u60 发现的错误的一种更短的方法:

    @Override
    public void start(Stage primaryStage) {
        Scene scene = new Scene(new StackPane(new Label("Antialising\nBalanced")), 
                300, 300, true, SceneAntialiasing.BALANCED);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    

    问题不在于相机,而在于抗锯齿。

    目前在 Mac 上的解决方法:使用 SceneAntialiasing.DISABLED。这将照常工作,您将能够添加 3D 对象。

    【讨论】:

    • 如果您还没有这样做,请将此错误报告给 Oracle。
    • 很惊讶该错误已被修复,但尚未包含在 8u_65 或 8u_66 版本中。
    猜你喜欢
    • 2020-04-03
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多