javafx之布局layout及UI控件事件处理canvas,效果,杂乱笔记

StackPane:显示在现有node的顶部overlapFlowPaneTilePane:类似于FlowPane,但是它是以单元格cell的形式组织,每一个组件单元格大小相同。AnchorPane固定组件到left,top.bottom.right并指定其与AnchorPane边界的距离,这种排列关系不随window resize而变化。他们仍然会保持自己的position acco
摘要由CSDN通过智能技术生成

很杂乱,不喜勿喷。

StackPane:显示在现有node的顶部overlap

FlowPane
TilePane:类似于FlowPane,但是它是以单元格cell的形式组织,每一个组件单元格大小相同。
AnchorPane固定组件到left,top.bottom.right并指定其与AnchorPane边界的距离,这种排列关系不随window resize而变化。他们仍然会保持自己的position according to anchor point


使用built-in layout panes的好处就是他们可以随着window resize而resize自己和其子组件UI Controls.但是Text与Group,Shapes对象时不能resizable的。这要注意。


如果你想更好地控制组件的size,那么你可以设置组件的preferred size
管理position,可以使用pane的alignment属性为子node设置位置。


构建大小一致地button:
1.针对每一个button使用setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE),注意千万别使用setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE);
2.使用VBox约束他们的宽,或使用HBox约束他们的高。
3.使用TilePane同时约束宽和高。
4.使用setPrefSize(50,50);之类的


每一个layout pane 都会根据minimum,preferred,maximum size调整node的大小
有时我们要防止由于stage resize导致size变化的过分,我们可以强制使用preferredsize,即使窗口变得很小或很大。
如对ListView ,Button等
listview.setMaxHeight(Control.USE_PREF_SIZE)
button.setMinWidth(Control.USE_PREF_SIZE)
当然你也你可以指定pref size
listview.setPrefWidth(150.0);


当然你也可以防止node size 随着stage size的变化而变化。
button.setMinWidth(80.0);
button.setPrefWidth(80.0);
button.setMaxWidth(80.0);


你可以管理layout pane 中nodes的alignment。这些alignment参数可以在下面这些枚举中找到
javafx.geometry包中的Pos,HPos,VPos


HBox.setHgrow(stackPane,Priority.ALWAYS)
代表的含义是当HBox的可用空间大于其PrefSize时,那么多余的地方可以让stackPane优先选择排列位置。


注意:GridPane添加子元素时无需getChildren().add而是直接add();


对于GridPane我们还可以通过ColumnConstaints对每一列的排列方式占用比进行约束。如:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值