JXTreeTable-可以从外部应用程序中操作复选框



使用Java代码,我将操纵另一个外部Java swing应用程序,我无法访问任何关于它是如何编码的信息。具体来说,我正在尝试操作一个JXTreeTable。其中一列类型为Boolean,包含复选框。

我试着做的一件事是,给代码做一个双击然后空格键的动作,已经成功了。然而,我的经理希望我想办法在不使用空格键的情况下切换复选框。

我想知道——尽管我对原始应用程序的设计视而不见,但有人知道使用Java方法切换复选框的方法吗?我曾尝试将setCellData()与布尔参数一起使用。奇怪的是,在之后对单元格调用getCellData()会返回我将其修改为的值,但复选框本身不会被切换——此外,在提交表单时,发送的是复选框反映的值,而不是单元格中的布尔值。

此外,"布尔"列中的复选框带有标签。我有一种感觉,这些标签是由TableRenderer生成的,但我如何获取标签上的值?

注意:我正在通过我正在编写的自动化测试脚本(确切地说是QTP)执行所有Java代码。因此,我可以使用的很多方法都很有限(例如,我不能编写自己的自定义Java类)

假设列数据由数据模型中的布尔值支持,则更改数据模型中值。

只要利用您触发所需的表更改事件,这样UI就可以更新。

这就是我最终解决问题的方法:

然而,正如我现在发现的那样,我的特殊情况最终变得更加复杂。事实证明,直接修改模型没有任何效果——我必须通过树中的实际节点对象来更改所有表。通过盲目跟踪方法,我发现开发人员已经编码了自定义节点处理程序,这些方法可以更改模型中的复选框状态数据。为了更新表格显示,我使用了treeTable.updateUI().

最新更新