java - 节点列中带有复选框的 Swing Outline

标签 java swing jcheckbox jxtreetable jtreetable

我正在创建一个包含房间的 JOutline,每个房间内都有多个产品。您可以选择单个产品并点击详细信息,但我还需要能够使用复选框选择多个产品旁边的复选框。

我特别寻找一种将复选框放在对象最左侧的方法。

有什么办法可以做到这一点,还是我最好研究一下 JXTreeTable?

最佳答案

正如所讨论的here , Outline需要您实现RowModel接口(interface),应传递给您的 OutlineModel构造函数。

class MyRowModel implements RowModel {…}
TreeModel myModel = new MyTreeModel(…);
OutlineModel outlineModel = DefaultOutlineModel.createOutlineModel(
    myModel, new MyRowModel(), …);
Outline outline = new Outline();
outline.setModel(outlineModel);

RowModel 的实现中,遵循熟悉的 JTable edit/render scheme对于 Boolean 类型的模型值:

  • getColumnClass() 实现应返回相关列的 Boolean.class

  • isCellEditable() 实现应该为相关列返回 true

  • getColumnClass() 实现应返回 myModel 中给定节点的值。

  • setValueFor() 实现应该更新给定节点,以便渲染器在编辑结束时看到新值。

image

关于java - 节点列中带有复选框的 Swing Outline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31254237/

相关文章:

java - 当外观和感觉发生变化时如何动态更改图标?

java - 线程未更新 GlassPane 上的进度栏

java - 处理点击任意 Swing 组件

java - JCheckBox 启用/禁用 JRadioButton

java - 创建一个新的 Java 项目

java - json 和空值

java - CXF 如何在没有 Spring 的情况下在 CXF 端口上设置 SoapVersion

java - 将图像发布到 Facebook 页面

java - 如何在 GridLayout 中对齐复选框?

java - JCheckbox - ActionListener 和 ItemListener?