JavaFX七巧板游戏:布局窗格Panes

Kotlin+JavaFX系列

  1. 使用Kotlin开发JavaFX
  2. Windows下的JavaFX桌面应用程序打包ABC
  3. Kotlin编写JavaFX的顺滑
  4. JavaFX动画:有趣的AnimationTimer
  5. JavaFX应用程序图标
  6. JavaFX专业开发者与业余开发者之间就差一个一个Icon packs
  7. JavaFX七巧板游戏:布局窗格Panes
  8. JavaFX七巧板游戏:布局控件
  9. JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
  10. Kotlin编写JavaFX的顺滑之数据控件(一)列表视图ListView
  11. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础应用
  12. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础深入浅出

JavaFX布局之各种Panes

上次写博客还是上次。

自开始把这两东西一起学Kotlin+JavaFX的顺滑已经过去差不多5个月,联盟……都是废物。我已经编了大概3个小的应用软件,申请了两个软件著作权(一个图标库的实在无聊),最近又把专业方向的一个软件实现出来了。

我整个的学习方式都是捡到什么用什么,在GUI布局方面用得最熟的是三个:

  • BorderPane
  • VBox
  • HBox

差不多我已经觉得自己天下无敌,biu~~~【全文完】

这几天闲下来,感觉还是干点活。于是把JavaFX界面布局的核心类Pane的类图大概拉了一下。

除了我唯一学会的三板斧,还有一堆内容。那就开动吧,把源码和文档整理一下。看看下一步是不是能显得更专业一点。

开局一张图

Pane

从词源上看,Pane是窗户中的一块玻璃。在JavaFX中,Pane是一个Region(的子类),也就是代表窗口的一个区域,这个区域负责其children的定位(layout)。

所以的子类都暴露children属性(Java的getChildren方法,下面只采用Kotlin的,不再提醒对应的Java含义),并实现子节点的定位。当然,children相关的实现实际上在Parent类中。

Pane类可以直接使用,这时候,就需要自行设置其子节点的位置。

class PaneLearningApplication : Application() {
   
   
    override fun start(primaryStage: Stage) {
   
   
        val canvas = Pane().apply {
   
   
        	// background: 展示Pane的区域
            style = "-fx-background-color: black;"
            setPrefSize(200.0, 200.0)
            children.addAll(Circle(50.0, Color.BLUE).apply {
   
   
            	// 蓝色的50半径的圆形
            	// 设置layoutX, layoutY,translateX和translateY不变
                relocate(20.0, 20.0)
            }, Rectangle(100.0, 100.0, Color.RED).apply {
   
   
            	// 红色的正方形,边长100.0
            	// 设置layoutX, layoutY,translateX和translateY不变
                relocate(70.0, 70.0)
            })
        }
        primaryStage.scene = Scene(canvas, 800.0, 600.0)
        primaryStage.show()
    }
}

fun main() {
   
   
    Application.launch(PaneLearningApplication
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值