javafx响应式布局_JavaFX的响应式设计
javafx響應式布局
使用CSS技術,為您的網站創建響應式設計相對容易。 根據屏幕的大小,您可以使用其他CSS文件和布局。 在JavaFX中,乍一看似乎有些困難,因為CSS僅負責樣式,而不負責布局。 但是,為各個屏幕尺寸使用不同的FXML文件并共享一個控制器實際上并沒有那么糟,因此您可以輕松地使用SceneBuilder來預覽不同屏幕尺寸的布局。 在代碼中,您可以根據屏幕大小在FXML文件之間進行切換,也可以通過根據目標設備創建不同的部署并在構建過程中復制所需的文件來擺脫這種情況。
但是,響應式設計不僅與尺寸有關。 對于啟用觸摸的設備,同樣要使用正確的控件,這一點很重要。 在JayDay上,Jim Weaver很好地介紹了如何使用JavaFX創建支持觸摸的UI。 您可以從JayDay網站上下載演示文稿: JayDay 2013 。 他提出的目的之一是使用分頁控件,該控件比TabPane易于在觸摸設備上使用。
不幸的是,這不能與我們重用控制器的方法很好地配合使用,因此我們必須為具有常見內容和用途的控制器創建一個基類。
@FXML private Pagination pager用于觸摸設備和
@FXML private TabPane pager如果應用程序在桌面上運行。
如Paru Somashekar在JavaONE與Jonathan Giles的演講中所展示的那樣,如果我們能夠簡單地通過CSS切換外觀,那就更好了。 在此演示中,她展示了CheckBox的替代外觀,可以通過CSS輕松設置(大約27:15):
因此,您可以專門為具有CSS的觸摸設備創建部署,或者使用類似的方法來確定設備是否支持觸摸:
PlatformImpl.isSupported(ConditionalFeature.INPUT_TOUCH);我決定自己嘗試一下,然后將我創建的ChoiceWheel控件轉換為ChoiceBox的外觀:
對于基于FXML / CSS的方法,我不會像Paru那樣通過每個CheckBox上的樣式類來設置樣式,而是為所有控件啟用替代的Skin。 對于我所有的ChoiceBoxes:
.choice-box { -fx-skin: "de.eppleton.controls.choicewheel.ChoiceBoxSkin"; }無需對控制器進行任何更改。 我認為這是一種創建在臺式機,平板電腦或手機上看起來都不錯的應用程序的好方法,它顯示了FXML和CSS的優勢。 每個設備大小都有一個CSS-FXML對,您可以:
- 根據每個設備組織布局
- 在SceneBuilder中的不同設備上輕松預覽設計
- 通過CSS在不同的控件(觸摸/鼠標)之間切換
- 重用同一控制器
- 創建僅包含目標設備所需文件的部署
對于常規控件,擁有更多這些經過觸摸優化的皮膚真的很棒。
翻譯自: https://www.javacodegeeks.com/2013/09/responsive-design-with-javafx.html
javafx響應式布局
總結
以上是生活随笔為你收集整理的javafx响应式布局_JavaFX的响应式设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刷卡门锁设置(刷卡门锁加卡方法)
- 下一篇: JVM体系结构101:了解您的虚拟机