布局
前言
剛開始的時候,不知道使用什么布局,發現SceneBuilder其實有8.5版本的,里面就是有提供一個簡單的桌面程序模板,8.5可以去官網下載,不過網速好像有點慢,慢慢等吧,官網下載地址
布局分析
外層是一個VBox,然后使用MenuBar,MenuBar的寬度就會自動和VBox的寬度保持一致(之前我使用的是FlowPane,弄了半天都不能自動適應寬度)。
MenuBar中有很多常用的MenuItem選項,我們可以根據自己的選擇刪除,並修改文字
中間的空白面板就是一個AnchorPane,有個屬性為Vgrow,查了一下資料,說這個是讓VBox中的子控件的寬度自適應VBox
VBox,HBox的子組件,如果你把TableView組件包在VBox下,發現它不會在縱軸方向自動100%寬度,而高度會自動100%。需要在組件設置類似屬性:GridPane.hgrow="ALWAYS" VBox.vgrow="ALWAYS",很怪誕。而且這個屬性是依賴父組件而存在的。如果父組件有GridPane,就設置GridPane.hgrow="ALWAYS",有VBox就設置VBox.vgrow="ALWAYS"。
之后,我們就可以往着AnchorPane放控件了,我們可以直接設置控件的邊距。不過,好像沒有找到百分比的數值設置,只能設置一個固定數值,這樣的話,窗口發生改變的時候,效果就不太好。
暫時沒有找到解決方法,先湊合着用吧
直接拖動,fxml中其實是設置了layoutX和layoutY,這個好像是絕對坐標,scenebuilder有自動對齊功能,這個還是比較方便的