javafx 调用java_Java,JavaFX的流畅设计风格进度栏
javafx 調用java
按照承諾,剛剛發布的Java JavaFX主題JMetro版本4.6為進度欄帶來了新樣式。
進度欄有兩種可能的狀態:確定和不確定,新的JMetro版本針對這兩種具有不同的樣式。 在本文中,我還將詳細介紹我在JMetro中遵守的一些API設計原則。
JMetro API設計原則
關于JMetro的API,我有一些原則。 其中之一是,它應要求最少的設置并具有最少的必需API。 這意味著,例如,僅需很少的方法調用,就可以將JMetro應用為主題。 現在,只需要這兩行代碼(可以很容易地折疊為一行):
JMetro jMetro = new JMetro(Style.LIGHT); jMetro.applyTheme(root);這也意味著我嘗試不引入新控件,除非應該絕對引入它們。 例如,使用新的文本字段和密碼字段樣式,我可以引入新的控件,因為這兩個控件都添加了新功能,例如清除和顯示密碼按鈕。 相反,我選擇通過引入可以在原始控件中使用的新外觀類來添加這些新功能。
這種方法有兩個優點:
- 開發人員可以輕松更改主題。 從JMetro到另一個主題,反之亦然。 由于JMetro僅在嚴格必要時才引入新控件,因此與JMetro沒有強耦合。 例如,您可能決定在移動設備上或在不同的OS上使用不同的主題,或者只是您決定不再使用JMetro。 使用JMetro非常簡單。
- 學習曲線淺。 開始使用JMetro應該真的很容易。 至少,您需要知道的是配置和應用JMetro的兩行代碼。 大多數控件已經在JavaFX SDK中。 在后臺將新外觀應用于這些控件。
您還可以通過CSS屬性配置大多數控件的新外觀,從而使您可以繼續使用與以前相同的Java代碼(不使用JMetro時)。 將來,我可能會添加新的API以通過代碼(例如Java代碼)配置這些功能,但我仍然計劃保留所需的最少API。
舊的JMetro進度欄
像往常一樣,我首先要展示進度條在以前版本中的外觀:
ProgressBar舊的JMetro輕主題
ProgressBar舊的JMetro黑暗主題
這是用于確定狀態的簡單平面設計樣式。 在舊版本中,不確定狀態沒有樣式。
新的JMetro進度欄
在繼續顯示新的進度欄外觀之前,我想解釋為什么存在兩種可能的狀態。 當您可以確定地確定特定任務已取得多少進展時,您將使用確定狀態。 在這種狀態下,您將顯示已完成了多少進度。 進度量取決于進度欄的“填充”程度。 當任務即將完成時,進度欄將被“填滿”或幾乎“填滿”。
相反,當您無法確定已完成的進度或由于某種原因而不想計算進度時,可以將狀態設置為不確定。 這不會顯示已取得多少進展。 但這至少將表明正在進行一些計算。
受Fluent Design的啟發,您可以在下面看到進度欄的新樣式。 現在,兩個新的不同外觀代表了這兩個狀態。 自從我在Twitter上的最后一篇文章以來,我對不確定的動畫進行了一些調整。
ProgressBar新的JMetro主題
上面的動畫可能看起來不像實時版本那樣流暢 。 我沒有時間發布視頻而不是GIF。 那可能會更好地證明實際結果。
深色和淺色版本之間沒有區別。
進度欄詳細信息
我試圖使新進度條CSS樣式與原始JavaFX Modena CSS盡可能相似。 您仍然可以找到“ track ”和“ bar ” CSS樣式類,可以像在Modena樣式表中一樣進行樣式設置。 對于不確定狀態,這是不可能的,因為外觀完全不同。
對于不確定狀態,每個“點”都是一個具有樣式類的Region : dot和dot_<number> 。 <Number>是點的位置,從1開始。您可以根據需要設置每個“點”的樣式,因為每個點都是一個Region 。
例如,如果您希望點逐漸變暗,則可以添加以下CSS:
.progress-bar:indeterminate .dot_1 {-fx-background-color: ACCENT_COLOR; }.progress-bar:indeterminate .dot_2 {-fx-background-color: derive(ACCENT_COLOR, -15%); }.progress-bar:indeterminate .dot_3 {-fx-background-color: derive(ACCENT_COLOR, -30%); }.progress-bar:indeterminate .dot_4 {-fx-background-color: derive(ACCENT_COLOR, -45%); }.progress-bar:indeterminate .dot_5 {-fx-background-color: derive(ACCENT_COLOR, -60%); }ACCENT_COLOR是JMetro中定義的JavaFX CSS變量,用于指定JMetro主題的強調色。 derive(..)是一個JavaFX CSS幫助器函數,它根據傳入的百分比是負數還是正數來使給定的顏色變暗或變亮。
此示例將給出以下結果:
結論
在JMetro 4.6版中,為進度欄添加了新樣式。 在這篇文章中,我還概述了JMetro背后的一些設計原則。
像以前一樣,您可以在JavaFX主題JMetro頁面上查看更新的文檔(將很快用這個新版本更新)。
JMetro即將達到版本5.0。 我計劃在第5版之前添加的所有最困難的控件都已完成。 在接下來的幾個版本中,我計劃進行清理,重新調整一些樣式并增加指定控件的強調顏色的可能性。 在此之前,我可能還可以添加新的控件樣式。 Ahh ..并在Maven Central中提供JMetro。
翻譯自: https://www.javacodegeeks.com/2018/10/fluent-design-style-progress-bar-javafx.html
javafx 調用java
總結
以上是生活随笔為你收集整理的javafx 调用java_Java,JavaFX的流畅设计风格进度栏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑的显存容量是什么(显卡的显存容量是什
- 下一篇: 宜昌天赋一城(宜昌佳境天城)