Kotlin+JavaFx實現動態按鈕改變窗體標題

1、技術簡要

  • 當前工程使用JDK1.8.0_191

  • JavaFX 是一個開源的下一代客戶端應用平臺,適用於基於Java構建的桌面、移動端和嵌入式系統。 它是許多個人和公司的共同努力的成果,目的是爲開發豐富的客戶端應用提供一個現代、高效、功能齊全的工具包

  • Kotlin 編程語言 是一種在 Java 虛擬機上運行的靜態類型編程語言,被稱之爲 Android 世界的Swift,由 JetBrains 社區設計開發並開源

  • Gradle是一個基於Apache Ant和Apache Maven概念的項目自動化構建開源工具,Gradle優越前者2個,具有Groovy編程語言的DSL語法

2、新建工程

  • 打開開發工具新建項目,這裏以idea爲例
  • File - -> new --> Project --> New Project

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、運行效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章