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)