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