gpt4 book ai didi

Javafx 代码可以在 Windows 上运行,但不能在 Mac OS 上运行;如何在 Mac 操作系统上运行 JavaFX?

转载 作者:太空宇宙 更新时间:2023-11-04 11:41:19 25 4
gpt4 key购买 nike

我有一个可以在 Windows 上运行的 JavaFX 程序,但无法在 Mac OS 上运行。

我有 MacOS Sierra 64 位(最新版本截至 3 月 11 日),JDK 8u121,Eclipse IDE - NEON

行为如下:按“运行”后,咖啡杯出现在扩展坞中,但一切都卡住了。那我就得强行退出了。

我注意到一些重要的事情:当我编写一个测试应用程序(例如带有按钮的边框 Pane )时,它工作得很好。但是,从 Windows 传输代码时似乎存在问题

PS。我在网上读到过这个问题,但我找到的只是以前的操作系统和jdks的答案。

更新:

考虑一下:

import java.awt.FileDialog;
import java.awt.Frame;
public class testClass{
public static void main(String[] args){
FileDialog fd = new FileDialog(new Frame(), "SELECT", FileDialog.LOAD);
fd.setVisible(true);
}
}

我的观察:在 Windows 上,会出现一个标题为 SELECT 的对话框。

在 Mac 上运行它时,会出现一个对话框,但没有标题。

<小时/>

现在,考虑一下:

当我注释掉 FileDialog 时,代码工作正常,它会弹出一个 500x500 的窗口。但是,当我包含 FileDialog 部分时,它会卡住。 (没有回应)

import java.awt.FileDialog;
import java.awt.Frame;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class testClass extends Application{
public static void main(String[] args){
launch(args);

}

@Override
public void start(Stage stage) throws Exception {
FileDialog fd = new FileDialog(new Frame(), "LOAD", FileDialog.LOAD);
fd.setVisible(true);

Group g = new Group();
Scene scene = new Scene(g, 500, 500);
stage.setScene(scene);
stage.show();
}

}

有人对如何解决这个问题有任何想法吗?

最佳答案

您应该使用 JavaFX 的 FileChooser,而不是 AWT FileDialog。 AWT/Swing 组件和 JavaFX 来自不同的血统,不能轻易混合。事实上,它在 Windows 上运行更多的是侥幸。

关于Javafx 代码可以在 Windows 上运行,但不能在 Mac OS 上运行;如何在 Mac 操作系统上运行 JavaFX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com