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)

最早的MagicDialog的確是直接建立Stage來實作出對話框的視窗,但經過一段時間的發展後,MagicDialog也已經改用Java 8 update 40之後新內建的Dialog API來產生對話框了。並且也加入了「MagicAudioPlayer」函式庫來播放音效。

取得MagicDialog

GitHub:

https://github.com/magiclen/MagicDialog

使用MagicDialog

MagicDialog的使用方式十分簡單,只要用Dialogs、InputDialogs或是ChoiceDialogs類別下的create方法,來串接對話框的相關設定,最後再使用show或是showAndWait方法,就能產生出訊息對話框、輸入對話框或是選擇對話框,並顯示出來。

如以下程式,可以產生出警告訊息對話框和通知訊息對話框:

magicdialog

magicdialog

如以下程式,可以產生出輸入對話框:

magicdialog

如以下程式,可以產生出選擇對話框:

magicdialog

無論是Dialogs、InputDialogs還是ChoiceDialogs類別,在使用create方法時,都沒有必要把所有選項都設定過再顯示出對話框,沒有設定的選項會自動套用預設值。

關於作者

Magic Len

Magic Len

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

相關文章