JavaFX 如何顯示出對話框(Dialog)?


JavaFX改進了以往Java的Awt和Swing函式庫實作圖形化介面(GUI, Graphical User Interface)的方式,而且還可以使用Lambda表示式來快速實作出Functional Interface,這也讓JavaFX應用程式的效能優於使用Awt和Swing函式庫做出來的Java應用程式。只是非常奇怪的是,JavaFX在一開始居然沒有內建對話框(Dialog),沒有提供像是Swing函式庫中的JOptionPane類別所提供的showMessageDialog這樣快速跳出訊息框的方法。所以要在JavaFX上顯示對話框,就只能自己製作一個對話框的Stage。

要做出對話框的Stage並不難,只是如果每次開發JavaFX應用程式時都要寫一次,那還真是麻煩。因此最好將Stage寫成可以快速進行設定,並且能夠重複使用的類別,包裝起來,供以後使用,如以下提供的MagicDialog

Java 8 update 40之後,JavaFX已有內建各種Dialog,可參考這篇文章來使用:

https://magiclen.org/javafx-official-dialog/

使用MagicDialog快速產生對話框(Dialog)

MagicDialogJarJavadoc下載連結如下:

//file.magiclen.org/index.php?file=4d616769634469616c6f672e726172

MagicDialog的使用方式十分簡單,只要用Dialogs類別下的create方法,來串接Dialog的相關設定,最後再使用show方法顯示出來即可,程式如下:

JavaFX 如何顯示出對話框(Dialog)?

預設的Dialogs所產生出來的Dialog是沒有任何按鈕的,如果要加入按鈕,可以使用Dialogs的addButton方法,程式如下:

JavaFX 如何顯示出對話框(Dialog)?

如果要更改對話框的圖示,可以使用Dialogs的type方法,程式如下:

JavaFX 如何顯示出對話框(Dialog)?

如果要更改對話框出現時播放的音效,可以使用Dialogs的audio方法,程式如下:

如果要更改對話框的文字大小,可以使用Dialogs的fontSize方法,程式如下:

JavaFX 如何顯示出對話框(Dialog)?

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章