1

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

我尝试做的一件事是编写双击然后空格键操作的代码,该操作有效。但是,我的经理希望我想办法在不使用空格键的情况下切换复选框。

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

此外,布尔列中的复选框带有标签。我感觉这些标签是由 TableRenderer 生成的,但是我怎样才能获取标签上的值呢?

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

4

2 回答 2

0

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

只需使用您触发所需的表更改事件,以便 UI 可以更新。

于 2012-07-16T21:37:06.963 回答
0

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

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

于 2012-07-25T14:44:11.020 回答