gpt4 book ai didi

java - 将标签文本值绑定(bind)到外部文件的 String 属性

转载 作者:行者123 更新时间:2023-12-02 02:00:36 25 4
gpt4 key购买 nike

我有一个外部文本文件,我想将其绑定(bind)到标签,以便在修改外部文件值时,我的 UI 会自动更新字符串值。

到目前为止,我已经尝试过:

val testid: ObservableStringValue = SimpleStringProperty(File("src/.../test").readText())

在我的边框 Pane 中,我引用了 testid

label.bind(testid)

这可以成功读取文件,但是当我编辑测试文件时,testid 不会自动更新其值。我想尝试使用 Handler() 强制变量每秒更新一次值,但我确信有一种更聪明的方法可以使用 Properties 和 .observable() 将文件和 Property 绑定(bind)在一起。

编辑:

根据 mipa 使用 nio2 的建议,我在为计时器生成对象/类时遇到了问题:

object DirectoryWatcher {

@JvmStatic fun main(args:Array<String>) {
val watchService = FileSystems.getDefault().newWatchService()
val path = Paths.get(System.getProperty("src/pykotinterface/test"))

path.register(
watchService,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY)

val key:WatchKey = watchService.take()
while (key != null) {
for (event in key.pollEvents()) {
println(
"Event kind:" + event.kind()
+ ". File affected: " + event.context() + ".")
}
key.reset()
}
}
}

我如何调用这个对象来运行 - 它当前位于我的 View() 类中,TornadoFX 正在调用该类来生成 View ,因此我无法调用 DirectWatcher.main()。我是否从其他 App 类中调用此对象?我很失落。

最佳答案

JavaFX 中没有允许此类绑定(bind)的内置机制,但您可以使用 Java 监视服务,如下所述: http://www.baeldung.com/java-nio2-watchserviceOracle 文档可以在这里找到: https://docs.oracle.com/javase/10/docs/api/java/nio/file/WatchService.html

关于java - 将标签文本值绑定(bind)到外部文件的 String 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com