1.删除现有布局文件中的控制器,如:
代码语言:txt
复制fx:controller="app.MainController"
2.在View中通过by fxml(fxmlPath)覆写root,fxml文件需放在资源目录resources 或其子目录如view下:
代码语言:txt
复制override val root : TextArea by fxml("/view/MainView.fxml")
3.通过by fxid()引用对应id的控件,对于按钮的onAction="#hello"事件,直接定义相应的函数即可:
代码语言:txt
复制val msg : Label by fxid()
fun hello() {
msg.text="you click the hello button"
}
fxml:
代码语言:javascript
复制<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane fx:id="mainWindow" prefHeight="600.0" prefWidth="900.0"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<center>
<VBox spacing="20">
<children>
<Label fx:id="msg">
</Label>
<Button fx:id="mybtn" onAction="#hello" text="hello tornadofx">
</Button>
</children>
</VBox>
</center>
</BorderPane>
tornadofx view: