java升级后OSX上的JavaFX渲染问题

时间:2015-09-11 13:49:39

标签: java macos javafx 3d

我的应用程序与javafx 3D对象工作正常,直到我将java从8u51升级到8u60。 升级后,UI会颠倒显示。 以下是我使用以下测试代码获得的内容。看起来y轴在渲染时是相反的,但在功能上却没有。

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

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

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

enter image description here

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();
    }
}

1 个答案:

答案 0 :(得分:1)

这是一种重现Mac上8u60的错误的简短方法:

SQL UPDATE

Balanced Antialiasing

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

Mac上的解决方法:使用@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(); } 。这将照常工作,您将能够添加3D对象。