首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在树表中添加复选框

如何在树表中添加复选框
EN

Stack Overflow用户
提问于 2016-04-07 09:28:23
回答 1查看 1.9K关注 0票数 1

我想要创建一个多列的Tree。我找到了这个教程这里 (德语)和这个回答 (英语)。我想在一列中添加复选框,但我不知道如何做。当我将复选框返回给JTreeTable时,执行中显示的内容是复选框细节而不是复选框对象。我怎样才能得到像这样的东西,如下图所示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 14:18:47

https://dzone.com/articles/taking-new-swing-tree-table-a-中所引用的这里所示,RowModel的实现必须从getColumnClass()返回正确的类型,从getValueFor()返回正确的值。类型Boolean.class的值将使用JCheckBox呈现。以下实现产生所引用的图像:

代码语言:javascript
复制
@Override
public Class getColumnClass(int column) {
    switch (column) {
        case 0:
            return Date.class;
        case 1:
            return Long.class;
        case 2:
            return Boolean.class;
        case 3:
            return Boolean.class;
        case 4:
            return Boolean.class;
        default:
            assert false;
    }
    return null;
}

@Override
public Object getValueFor(Object node, int column) {
    File f = (File) node;
    switch (column) {
        case 0:
            return new Date(f.lastModified());
        case 1:
            return f.length();
        case 2:
            return f.canRead();
        case 3:
            return f.canWrite();
        case 4:
            return f.canExecute();
        default:
            assert false;
    }
    return null;
}

我无法选择复选框。

您需要在实现所需列的true中返回isCellEditable(),并相应地更新setValueFor()实现中的node。当单元格编辑器结束时,您的setValueFor()实现将被调用,因此请验证它是否更新了getValueFor()稍后将返回的相同值。或者,您希望使用TreeModel API中规定的方案来实现管理TreeModelListener列表的EventListenerList方法;DefaultTreeModel代码就是一个很好的例子。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36471989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档