Kotlin+JavaFx实现动态按钮改变窗体标题

2021-09-07  本文已影响0人  爱学习的蹭蹭

1、技术简要

2、新建工程

3、工程结构

4、bulid.gradle配置

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.5.10'
}
group 'com.rub'
version '1.0-SNAPSHOT'

//定义Groovy变量
def jdkVersion = JavaVersion.VERSION_1_8

//设置仓库地址
repositories {
    maven { url 'http://maven.aliyun.com/repository/google/' }
    maven { url 'http://maven.aliyun.com/repository/jcenter/' }
    mavenCentral()
    mavenLocal()
}
//工程jar依赖配置
dependencies {
    //kotlin标准类库jar
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    //kotlin反射需要的jar
    implementation "org.jetbrains.kotlin:kotlin-reflect"
   
}

//设置kotlin编译版本
[compileKotlin, compileTestKotlin].forEach {
    it.kotlinOptions {
        jvmTarget = jdkVersion
    }
}

//设置编译编码
[compileJava, javadoc, compileTestJava]*.options*.encoding = "UTF-8"

5、代码实现

import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.control.Button
import javafx.scene.layout.AnchorPane
import javafx.scene.layout.HBox
import javafx.stage.Stage
class HelloWorldApp : Application() {
    override fun start(stage: Stage?) {
        val prim = stage!!  //!!表示告诉kotlin编辑器,此值不要检查了。
        val hBox = HBox() //创建HBox
        val anchorPane = AnchorPane().apply { children.add(hBox) }
        val scene = Scene(anchorPane)
        prim.apply {
            this.scene = scene
            title = "HelloWorld"
            width = 300.0 //设置窗体宽度
            height = 500.0 //设置窗体高度
            show()//窗体显示
        }
        //设置动态按钮,通过按钮事件进行改变窗体的title
        arrayOf("a", "b", "c").forEach {
            hBox.children.add(Button("按钮${it}").apply {
                setOnAction { prim.title = this.text }
            })
        }
    }
}
//Kotlin的运行main方法,::class.java使用到反射
fun main() = Application.launch(HelloWorldApp::class.java)

6、运行效果

上一篇 下一篇

猜你喜欢

热点阅读