百木园-与人分享,
就是让自己快乐。

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

原文地址: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\")
}

参考

  • Config Settings and State · TornadoFX Guide

提问之前,请先看提问须知
点击右侧图标发起提问
联系我
或者加入QQ群一起学习
Stars-One安卓学习交流群
TornadoFx学习交流群:1071184701
TornadoFx设置保存功能((config和preference使用))
TornadoFx设置保存功能((config和preference使用))
<!--TornadoFx设置保存功能((config和preference使用))-->


来源:https://www.cnblogs.com/stars-one/p/16315413.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » TornadoFx设置保存功能((config和preference使用))

相关推荐

  • 暂无文章