我这里用了Kfoenix,jfxradiobutton是Kfoenix中的控件,jfxradiobutton和radiobutton一样
override val root = vbox { togglegroup { jfxradiobutton("选项1") { isSelected = true setOnAction { } } jfxradiobutton("选项2") { setOnAction { } } jfxradiobutton("选项3") { setOnAction { } } } } 7.菜单栏 override val root = vbox { menubar { menu("帮助") { item("关于") { //设置点击事件 setOnAction { } } } menu("文件"){ } } ... } 8.打开新窗口 内部窗口 button("Open editor") { action { openInternalWindow(Editor::class) } } 新窗口 find(AboutView::class).openModal() 9.View传递数据 10.显示隐藏比如有一个按钮默认是禁用的,只有当某个单选框被选中的时候,,这个按钮才会启用
val radiobutton = radiobutton(){ } button{ disable{ radiobutton.isSelected } } 11.实时视图由于是使用kotlin来开发界面,所有,没有像之前那样使用fxml可以直接预览界面,但是,开发提供了一个实时视图,方便我们在debug模式可以快速看到界面,无需重启应用程序
配置有两种配置方式
1.MyApp中添加如下代码
2.在debug配置中添加一个参数--alive-views
使用
修改View,之后按下Ctrl+F9,等待重载完成,应用的界面就会发生变化
PS:同理还有个--live-stylesheets参数(对应reloadStylesheetsOnFocus方法),用来开启样式的热更新
12.css样式 内联样式 override val root = vbox { button{ style { backgroundColor += c("blue") } } } 定义css文件 package com.wan.noveldownloader.app import javafx.scene.text.FontWeight import tornadofx.* class Styles : Stylesheet() { companion object { val MyTab by cssclass() } init { MyTab{ backgroundColor += c("#64b7ea") //伪标签,悬浮 and(hover){ backgroundColor+=c("#6495ED") } } } }使用addClass方法添加
button{ addClass(Styles.MyTab) }