• TornadoFx设置保存功能((config和preference使用))


    本文为作者原创,转载请注明出处,谢谢配合
    作者:stars-one
    链接:https://www.cnblogs.com/stars-one/p/16315413.html

    本篇大约有1673个字,阅读预计需要2.09分钟


    原文地址:TornadoFx设置保存功能(config和preference使用)

    相信大部分的桌面软件都是存在一个设置的界面,允许用户进行设置的修改,此修改之后需要保存的本地,若是让开发者自己实现,还是有些繁琐

    这里介绍下TornadoFx中提供的一个config对象,可以快速实现设置页面相关数据的保存

    官方文档中(链接在下文的参考有罗列),提及了两个对象configpreferences,下面分别对这两个对象进行讲解

    config

    基本使用

    官方说明config一般作用于存储组件(Control)的状态

    用法其实很简单,在View或Application中即可使用,如下代码

    //保存数值
    config["mykey"] = "数据"
    config.save()
    

    config本身其实就是一个Java中的Properties对象,以键值对的方式存储数据

    所以,我们知道了用法,不难猜到其获取数值的方法

    //从存储的本地文件中取出key为mykey的数据,若没有,则返回默认数值
    val result = config.string("mykey","默认数值")
    

    当然,上面举例用的只是string方法,除此之外,相关类型的方法也是都有支持,如boolean(),int()

    注意: 存数据和读数据需要在同个文件里,否则读取会失败(原因也好理解,因为config是固定了某个路径)

    关于文件路径

    上面只是讲了用法,有的同学可能会好奇,之后文件是存储在哪里了呢?

    如果你是直接用IDEA跑起来的话,在你项目目录下会有个conf文件夹,其中properties文件名会以包名+View文件名,如下图所示

    如果想要修改文件路径,根据你用的范围不同,有几种不同的方法(主要就是重写参数)

    View:

    class MyView : View() {
        override val configPath = Paths.get("some/other/path/myview.properties")
    }
    
    class MyView : View() {
        override val configPath = Paths.get("some/other/path/myview.properties")
    

    App:

    class MyApp : App(WelcomeView::class) {
        override val configBasePath = Paths.get("/etc/myapp/conf")
    }
    

    perferences

    perferences和config有些区别,这个是系统层面的,在window中使用的话,会在注册表中新建一个新的数据,如下面的代码

    button{
        action{
           preferences {
               putBoolean("mykey",true)
           }
        }
    }
    

    之后可以在HKEY_CURRENT_USER/Software/JavaSoft/....目录找到我们设置的选项数值

    这里由于我们是默认,所以,选项目录名就是为TornadoFx

    如果你想改的话,也很简单,preferences方法中传递数值

    preferences("application") {
       putBoolean("boolean", true)
       putString("String", "a string")
    }
    

    参考

  • 相关阅读:
    525. 连续数组 (前缀和 + 哈希)
    LeetCode【279】完全平方数
    C#:实现分枝绑定背包求解器算法(附完整源码)
    ArkTs快速入门
    PG函数中有OUT则忽略 RETURNS SETOF record AS $$
    IR信息检索前沿梳理
    与诈蟹的初次邂逅,你中招了没
    AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码
    (内部资料)收下这几个人工智能学习秘籍!
    【计算机视觉40例】案例34:勾勒五官轮廓
  • 原文地址:https://www.cnblogs.com/stars-one/p/16315413.html