2017-03-12 58 views
0

我有一個適用於Windows的JavaFX程序,但無法在Mac OS上運行。Java FX代碼適用於Windows,但不適用於Mac OS;我如何在Mac OS上運行JavaFX?

我的MacOS塞拉利昂64位(最新爲3月11日) , JDK 8u121,Eclipse的IDE - NEON

這裏的行爲:在按下 「RUN」,咖啡杯在被告席上顯示出來,但一切都凍結。然後我必須強迫退出它。

我注意到了一件重要的事情:當我編寫一個測試應用程序(例如帶有按鈕的邊框)時,它的工作效果非常好。但是,在從Windows

PS轉移代碼時似乎存在問題。我已經在線閱讀了這個問題,但我發現的所有內容都是以前的操作系統和jdks的答案。

UPDATE:

考慮一下:

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,代碼工作正常,它帶來了一個500×500的窗口。 但是,當我包含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

操作系統之間總是存在一些細微的差別,但一般來說,在Windows和Mac之間傳輸代碼沒有問題。 – mipa

+0

@mipa有趣的,你有沒有試過一樣? (將代碼從Windows傳輸到Mac) – Matt

回答

0

您應該使用JavaFX的FileChooser,而不是AWT FileDialog。 AWT/Swing組件和JavaFX來自不同的血統,不容易混合使用。這個在Windows上運行的事實比任何事情都更僥倖。

+0

謝謝!這對我有效。但是,我仍然有一個問題:我怎樣才能讓標題顯示?我這樣做了:'fd。setTitle(「選擇文件」) – Matt

相關問題