我有一个适用于Windows的JavaFX程序,但无法在Mac OS上运行。
我有MacOS Sierra 64bit(最新截至3月11日), JDK 8u121, Eclipse IDE - NEON
这是行为:按下" RUN",咖啡杯出现在码头,但一切都冻结了。然后我不得不强行戒掉它。
我注意到的一些重要事项:当我编写一个测试应用程序(例如带有按钮的边框)时,它的工作原理非常好。但是,从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();
}
}
有没有人对如何解决这个问题有任何想法?
答案 0 :(得分:0)
您应该使用JavaFX的FileChooser,而不是AWT FileDialog。 AWT / Swing组件和JavaFX来自不同的血系,不能轻易混合。在Windows上运行这一事实比任何事情都更加侥幸。