首页 > 编程语言 >javafx 入门到放弃

javafx 入门到放弃

时间:2024-02-24 20:45:16浏览次数:26  
标签:p0 入门 val javafx tornadofx Application 放弃 class

javafx从入门到放弃

构建配置 build.gradle.kts

//使用javafx插件,不用添加依赖了
plugins {
    kotlin("jvm")
    id("org.openjfx.javafxplugin") version "0.0.7"
}
//版本配置和模块配置
javafx {
    version = "17"
    modules = listOf("javafx.controls")
}

创建ui程序

import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.control.Label
import javafx.stage.Stage

class AppStart : Application() {
    override fun start(p0: Stage) {
        //标题
        p0.title="test javafx use kotlin"
        val doc = Label("hi word")
        //场景
        p0.scene = Scene(doc)
        //窗口大小
        p0.width=200.0
        p0.height=200.0
        p0.show()
    }

}

fun main() {
    Application.launch(AppStart::class.java)
}

完成上面步骤就可以运行一个简单的桌面程序了

javafx框架 tornadofx

javafx 配合kotlin 已经很好用了,使用tornadofx可以更简单.
作者不推荐使用fxml,优点只有快速预览,但是实操不如直接写代码

//启动ui,tornadofx中的App 对象继承Javafx 的Application 
class AppStart : App(Index::class)
fun main()
{
    Application.launch(AppStart::class.java)
}
//Index,可以使用dsl编写
class Index : View() {
    override val root = borderpane {
        title = "test tornadofx"
        prefWidth = 800.0
        prefHeight = 600.0
        center = button(v) {
            action {
                println("hi")
            }
        }
    }
}
//数据绑定:
        val a = SearchTaskInfo()
        a.keyword = "sf"
//tornadofx 所有对象都扩展了一个方法 observable 
//改变v的值  对象a.keyword的值也会改变,场景:数据库对象可以直接转换成ui对象,原对象值也会改变
        val v = a.observable(SearchTaskInfo::keyword)
// 对比 javafx 原生转换
        val v=JavaBeanObjectPropertyBuilder.create().bean(a).name("keyword").build()

//

持续更

标签:p0,入门,val,javafx,tornadofx,Application,放弃,class
From: https://www.cnblogs.com/boxmvc/p/18030683

相关文章

  • kettle从入门到精通 第四十七课 ETL之kettle mongo output 写入
    1、上一节课我们学习了mongoinput读取步骤,本节课我们一起学习下mongoout写入步骤,该步骤可以将数据写入到mongo中,如下图所示。 2、 配置mongo连接,有两种方式,如截图所示。ConnectionString:如StringconnectionString="mongodb://username:password@localhost:27017/myda......
  • vue入门系列-1
    概述vue入门第一天知识点引入Vue.js想让Vue工作,需要创建一个Vue的实例main容器里的代码遵循html规范,其中新增了一些特殊的Vue语法main容器里的代码被称为【Vue模板】代码示例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="view......
  • Spring Boot 入门
    1、基本介绍简化Spring应用开发的一个框架、整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;优点:快速创建独立运行的Spring项目以及与主流框架集成;使用嵌入式的Servlet容器,应用无需打成WAR包;starters自动依赖与版本控制;大量的自动配置,简化开发,也可修改默认值;无......
  • SQLite 入门教程
    不是MySQL用不起,而是SQLite更有性价比,绝大多数的Web应用SQLite都可以满足。SQLite是一个用C语言编写的开源、轻量级、快速、独立且高可靠性的SQL数据库引擎,它提供了功能齐全的数据库解决方案。SQLite几乎可以在所有的手机和计算机上运行,它被嵌入到无数人每天都......
  • 入门mysql
    #查询有多少数据库指令showDATABASESshowdatabases;#创建数据库指令CreateDATABASE名字createdatabasemeasurement;#创建好数据库想要显示数据库信息showcreatedatabasemeasurementshowcreatedatabasemeasurement;#显示的是默认的编码格式......
  • HydroOJ 从入门到入土(14)批量修改题目难度
    老师,这排名咋算的?为啥我在他后边??很多学生比较关注排名,而排名又受到各种因素影响,其中最不可控的是题目难度(源码)。因为题目难度默认为0,也就是自动计算,但自动计算题目难度的时候,是从10倒数的,AC率高了才会逐渐下降,但也基本不太会降到1。而手动定过难度的题目,基本都从1开始......
  • 第1章 Python入门
    Python介绍·简介Python是一种解释型、面向对象的语言。由吉多·范罗苏姆(GuidovanRossum)于1989年发明,1991年正式公布。官网:www.python.orgPython单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提·派森的飞行马戏团》(MontyPyt......
  • kettle从入门到精通 第四十五课 ETL之 kettle redis
    1、kettle9.3/9.4spoon客户端中默认是没有redis步骤的,首先想到在kettle的插件市场进行下载redis步骤。 2、可能因为网络原因,直接下载失败了。索性放弃redis原有插件步骤,改为自己通过java代码进行实现,(有java基础的可以通过java代码步骤结合自定义jar包实现一切功能)。 3、将j......
  • 【Loading】ctfshow_WriteUp | MISC入门
    misc1题目分析打开图片就是flag,可以直接拿文字识别工具识别一下提交。misc2题目分析看到NG开头的内容猜测是png文件被修改了文件类型,保险起见用010Editor先看看十六进制文件:png头:png尾:更改文件后缀名为png,打开图片得到flag。misc3题目分析查了......
  • sass快速入门笔记
    本文记录了sass基本内容,包含声明、嵌套、导入、混合等使用场景将反复使用的css属性值用一个变量声明,开发过程使用这个变量,方便后期修改该值,不用全局搜索替换(降低修改风险)。变量声明用关键字$声明变量受{...}定义范围影响,在{...}内定义的在外部不可使用$highlight-......