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)