问题标签 [tornadofx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
486 浏览

javafx - tornadofx EventBus 使用 tableview 对象扩展表格行

背景:
假设我在一个视图中有单个表的多个片段,每个片段都有一个 rowExpander。

预期行为:
如果我在一个表片段中展开一行,其他片段相同的索引行应该被展开。崩溃也一样

我的进度:
示例片段:

活动类别:

我从“订阅”中了解到的是,它在触发事件时被调用(目前,每当用户通过双击/单击加号扩展行时,我都会触发该事件);并且由于订阅放置在 tableview 中,因此会为所有存在的表片段调用它(这就是我想要的)。但是在 subscribe 方法中,我正在做一个 selectionModel.select(event.index) ,它只选择相应的索引行。我想扩展行(最好使用 selectionModel)

问题2:
是否可以删除加号列?对于rowExpand,如果我将expandOnDoubleClick 设置为true,我不想在我的tableview 中添加加号列。

0 投票
1 回答
1036 浏览

javafx - Tornadofx tableview 使用组合框并在按钮上添加 FXEvent

我在以下基本问题上需要帮助:

要求:
我有一个可以编辑(内联)的表格视图,也可以删除行,如果需要,还可以单击按钮进行一些复杂的操作。

我的看法,以下是 3 个小问题:

  1. 我用 isEditable = true 创建了一个表格视图,并将列名设为可编辑。但是当我编辑时,它不会绑定到模型。(一定少了一个很简单的东西)
  2. 编辑时,组合框会显示选项,但在选择值时会引发异常。

java.lang.ClassCastException:javafx.beans.property.SimpleStringProperty 不能转换为 javafx.beans.property.ObjectProperty

然后,我添加了一个删除按钮,当我取消注释 tableView.items.removeAt(index) 时它工作正常
但是因为我想要一些额外的功能,所以我决定使用 FXEvent 火。但是我应该如何在这里使用它。

0 投票
1 回答
904 浏览

javafx - TornadoFX JavaFX 同步滚动表视图

我正在尝试跨表视图同步滚动。(水平和垂直)

在此处输入图像描述

SyncScrollEx 视图有两个 tableView,基本上是一个并排放置的 Fragment,具有相同的数据集,因此具有相同的表大小布局。

预期行为:当我在一个 tableview 上滚动时,另一个 tableview 的滚动条也应该滚动相同的量。

以下是我目前的进展:

这些评论突出了我面临的问题。
此外,我无法理解在 Fire() 发生在 EventListener 内部的这种情况下,如何为两个表视图调用“订阅”

0 投票
1 回答
931 浏览

kotlin - TornadoFX 如何使用子窗口模型列表创建 MDI?

我有以下组件:

摘要:我想创建 MDI 并为每个孩子访问模型。

我尝试通过帮助 "openInternalWindow" 执行此操作,但我无法创建多个子实例,我必须手动管理列表 - 这很糟糕。

如何正确使用 tornadofx 方式?

0 投票
1 回答
1475 浏览

gradle - 如何使用 Kotlin 和 Tornado FX 设置 Gluon 应用程序

我目前尝试结合以下技术:

  • 胶子(移动)
  • Gradle(Gluon的依赖,因为他们依赖它)
  • Kotlin(因为它是我想深入研究的一门很好的语言)
  • Tornado FX(我猜是 JavaFX 的,Anko 是 Android 的)

问题是,我对 Intellij-IDEA 比较陌生,并且在正确设置它时遇到了问题,尽管我认为该build.gradle文件足够合适。

这是我build.gradle到目前为止的样子:

我至少设法阻止 IDE 抱怨 Kotlin。我将一个简单的应用程序类转换为如下所示:

但现在我被困住了,因为对 Tornado FX 的依赖没有得到正确解决。我想创建一个View并开始

但是像这样的进口import tornadofx.View永远不会得到解决。

有问题吗,因为 Tornado 似乎使用 Kotlin 1.0.5,而我想使用1.0.6?(虽然这没有效果,但如果我改变它,关于(仍然未使用,因为“未解决”)View......)

问候,丹尼尔

0 投票
1 回答
302 浏览

kotlin - 关于 DI、ViewModel 等的问题

我有以下代码:

对于这个例子,我有两个问题:

1)如果我更改值并在没有提交的情况下关闭窗口(用户可以使用帮助 [X] 按钮执行此操作),那么只有 ViewModel 会存储更改(即使在重新打开后它也会显示在 GUI 中),但模型POJO 对象将保留旧数据。

如果我使用 Example 类的实例(没有 DI),那么这个实例会立即收到所有更改。

例如,我不想要提交/回滚功能,但我想要 DI 和立即更新。我该做什么?(我可以为“文本字段更改值事件”调用“提交”)

2) ViewModel 具有带参数的构造函数,如果我尝试像这样打开 ExampleView

然后我得到了一个明显的 RuntimeException。例如,我可以通过编译器警告(或其他方式)来避免这种情况吗?

0 投票
1 回答
492 浏览

kotlin - 在 TornadoFX 中,如何将布局分离到不同的类,然后在构建器中使用它们?

例如,我想要一个 TabPane,但我希望每个选项卡都在其单独的类中。有没有办法让建造者完成这项工作?我想做这样的事情:

0 投票
1 回答
729 浏览

javafx - 带有 TestFX 的 TornadoFX 在每个 TestCase 之后关闭视图

我正在尝试使用 testfx 框架测试一个基本的登录屏幕(使用 tornadofx 创建)。

我添加了 3 个运行良好的测试用例,但问题是它们使用前一个阶段而不是创建一个新的阶段。我希望测试用例独立运行。

我正在测试 View() 而不是 App()。如果我使用 MyMainApp().start(stage) 然后 MyMainApp().stop(),我会得到所需的行为。
但是如何为视图和片段执行此操作。

下面是代码:

0 投票
1 回答
860 浏览

java - 在 TornadoFX 中,如何在更改其他属性时更改一个属性?

例如,我想这样做:我有一个 StringProperty,它是一个 IntegerProperty 和另一个 StringProperty 的组合,如下所示:

  • 字符串属性 A = "foo"
  • 整数属性 B = 3
  • 结果 StringProperty C = "foo 3"

如何“绑定”属性,以便在更改 A 或 B 时更改 C?(请注意,我不想对 C 所做的更改做出反应)

我尝试使用stringBinding()方法,但我不清楚这种方法是如何工作的,关于它的文档也不清楚。

0 投票
1 回答
376 浏览

java - 在 TornadoFX 中,如何使用 objectBinding 将 BigDecimal 属性绑定到另一个 BigDecimal 属性?

我正在尝试创建一个绑定BigDecimal属性,该属性是对其他两个属性的计算BigDecimal,如下所示:

...就像我对StringPropertyor所做的那样IntegerProperty,否则它会毫无问题地工作。但是,这一次我得到一个类型不匹配:它期望ObjectProperty<BigDecimal>,但接收ObjectBinding<BigDecimal?>

这里有什么问题?我是不是用objectProperty()错了方法?我应该使用其他方法来创建自定义对象的绑定吗?

编辑:

问题是我试图ObjectProperty<BigDecimal>ObjectBinding<BigDecimal>. 就我而言,解决方案是制作原始ObjectProperty<BigDecimal>抽象,并将实现留给继承它的类。