使用具有不同根和节点类型的 TreeTable

2024-02-04

我有以下问题:

我想要一个类似 JTeeTable 的表组件,只不过树的根(下面的类)和节点不是同一类型。

例如,假设我有以下课程:

public final class Entry {

    private int id;
    private String title;
    private String notes;

    private List<SubEntry> subEntryList; /** @see SubEntry*/
}


public final class SubEntry{
    private int id;
    private String title;
    private String notes;

}

尽管这两个类看起来很相似并且可能会激发继承的情况,他们没有那样的关系. 将其视为带有汽车零件列表的汽车或带有演员列表的电影。

两周以来,我一直在尝试想办法以视觉方式呈现上述内容。我想过使用 JTreeTable 组件,但是当子条目(节点??)与条目(叶??)具有相同类型时,我遇到的所有示例都是交叉显示用法。

到目前为止我的想法:看到如果我使用表格,列将共享相同的名称,我想我应该使用一个表格和另一个表格作为 TableCellRenderer,然后支持双击父行时显示/隐藏。

我不确定如何继续前进......

因此,如果您对我应该如何解决这个问题有任何想法,请分享您的想法。

UPDATE

//I finally managed to sort out the tree table model.
//Below is the snippet of what I have done. 

        private List<Entry> root; 

        public EntryTreeTableModel(List<Entry> root) { 
              this.root = root;
        } 

    public int getChildCount(Object parent) { 

      if (parent instanceof List){ 
             return ((ArrayList<Entry>) parent).size(); 
      }else if (parent instanceof Entry){ 
            return ((Entry)parent).getSubEntries().size(); 
      } 
     return 0; 
   }

   public Object getChild(Object parent, int index) {
        if (parent instanceof List){
            return ((ArrayList<Entry>) parent).get(index);
        }else if (parent instanceof Entry){
            return ((Entry)parent).getSubEntries().get(index);
        }else if (parent instanceof Entry){
            return ((SubEntry)parent); // Hmmm, this feels wrong. Check later.
        }
            return "...";  // Just to indicate that something went wrong
    }

其他方法遵循同样的方法

非常感谢所有分享的人 他们的想法。再次感谢 垃圾神...


班上org.netbeans.swing.outline.Outline http://bits.netbeans.org/dev/javadoc/org-netbeans-swing-outline/org/netbeans/swing/outline/Outline.html正如这所建议的,似乎是一个很好的候选人example http://java.dzone.com/news/taking-new-swing-tree-table-a-。尤其,Outline http://bits.netbeans.org/dev/javadoc/org-netbeans-swing-outline/org/netbeans/swing/outline/Outline.html uses javax.swing.tree.TreeModel http://download.oracle.com/javase/6/docs/api/javax/swing/tree/TreeModel.html,它“接受任何类型的对象作为树节点”。将您的模型与例子 http://java.dzone.com/news/taking-new-swing-tree-table-a-, Entry将对应于一个目录,并且SubEntry将对应于其中包含的文件列表。看创建数据模型 http://download.oracle.com/javase/tutorial/uiswing/components/tree.html#data一个相关的例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用具有不同根和节点类型的 TreeTable 的相关文章

  • Java 类查找工具

    任何经常使用 Java 的人都知道类路径中的多个 jar 会给我们带来多少麻烦 我正在寻找一个可以帮助我的工具 在 jar 中搜索类文件类路径 在 jar 中搜索类文件具体位置 也许要求太多 但请告诉我同一个类是否存在于多个罐子中 不用说它
  • (更好的方法)使用 Eclipse 和 XText 获取项目中的文件

    我正在编写一个 XText 编辑器 并进行一些语义突出显示 我正在解析的部分语言引用了文件 这些文件应该存在于项目中 我想根据这些文件是否位于正确的位置来突出显示 目前 我有一个非常丑陋的解决方案 但我确信有更好的方法 public voi
  • string.split("(?!^)") 解释

    我正在尝试将字符串的字符拆分为字符串数组 我找到了解决方案here https stackoverflow com questions 5235401 split string into array of character strings
  • 我需要在 Java 9 中使用哪个模块才能使用 JPA?

    我正在使用一个需要 JPA 的项目测试 Java 9 javax persistence 类 当我添加module info java并声明我的模块 下的所有类javax persistece包变得不可用 我搜索了很多 但找不到在 Java
  • Spring MVC - 自动查找验证器

    假设我有一个像这样的示例实体类 public class Address 和相应的验证器 Component public AddressValidator implements Validator Override public bool
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • Java中的字节和字符转换

    如果我将一个字符转换为byte然后回到char 那个角色神秘地消失了 变成了别的东西 这怎么可能 这是代码 char a line 1 byte b byte a line 2 char c char b line 3 System out
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • grails 中的 log4j:如何登录文件?

    我的 grails config groovy 中有这个 log4j 配置 log4j error org codehaus groovy grails web servlet controllers org codehaus groovy
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • Spark SQL 失败,因为“常量池已超过 JVM 限制 0xFFFF”

    我在 EMR 4 6 0 Spark 1 6 1 上运行此代码 val sqlContext SQLContext getOrCreate sc val inputRDD sqlContext read json input try inp
  • 如何组合 3 个或更多 CompletionStages?

    如果有 2 个 CompletionStages 我可以将它们与thenCombine method CompletionStage a aCompletionStage getA CompletionStage b bCompletion
  • 从侦听器中修改 JFrame [重复]

    这个问题在这里已经有答案了 可能的重复 如何在框架可见后调用 setUndecorated https stackoverflow com questions 875132 how to call setundecorated after
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • 图标和导航视图之间的左边距

    我必须在图标和图标之间添加左边距NavigationView 如下图中箭头所示 我知道根据谷歌规范 这个边距必须有16dp但我需要改变它 我努力了
  • 莫基托。验证方法参数是特定类

    我有一个方法 void putObject
  • Java 中的连接路径

    In Python我可以连接两条路径os path join os path join foo bar gt foo bar 我正在尝试在 Java 中实现相同的目标 而不用担心是否OS is Unix Solaris or Windows
  • Swing GUI 出现 IntelliJ 错误“contentPane 无法设置为 null。”从终端编译时

    当我从 IntelliJ 编译我的项目时 没有任何问题 我的程序运行顺利 但是当我尝试使用 javac 从终端编译它时 警告 注意 Victor presentation TableControllerMenu java 使用未经检查或不安
  • 在edittext android中插入imageview

    我想将 imageview 放在 edittext 中 可能吗 我检查了 evernote 应用程序 它能够将照片放在编辑文本部分 我想让我的应用程序完全相同 我如何才能将从图库中选择的图像视图放入编辑文本中 我首先尝试将 imagevie

随机推荐

  • 多个进程上的 fs.createWriteStream

    如何实现多个 Node js 进程写入同一个文件的系统fs createWriteStream 这样它们就不会覆盖数据 看起来 fs createWriteStream 的默认设置是在调用该方法时清除文件 我的目标是清除一次文件 然后让所有
  • MongoDB:聚合并展平数组字段

    在使用关系数据库 SQL Server MySQL Oracle Informix 28 年之后 我已转向 MongoDB 过去两周进展缓慢 我想提出几个问题来证实我的想法 我的文档如下所示 忽略此问题的分组 id xyz 800 site
  • emberjs 1.0.0pre4 如何将上下文对象传递给资源“...Index”路由?

    在一个简单的 ember 应用程序中 我有一个带有索引模板的资源 详细信息 在应用程序索引模板中 我有一个调用的按钮transitionTo detail obj 在索引控制器上 其中obj是被单击的内容项 这通过obj as the mo
  • ruby 中的反引号和单引号错误消息 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么 ruby 在错误消息中使用反引号和单引号 bad method NameError undefined local variable o
  • Android获取外部存储绝对路径

    我想下载一些文件并将它们保存到手机 平板电脑的内部存储中 已在 Samsung Galaxy Note 2 和 Galaxt Tab 10 1 上试用 当我使用 storage sdcard0 在他们身上 代码运行成功 但是当我使用Gala
  • Require.js 忽略 baseUrl

    好吧 这让我发疯 所以也许有人可以指出我正确的方向 我使用最新的 require js 和 jquery 作为我的模块加载器 我正在使用data main属性指向一个配置文件baseUrl 当我尝试加载模块时baseUrl被忽略 并且 re
  • Flash:距 MovieClip 最近的点

    我需要限制一个点内DisplayObject艺术家给我的 我让它工作 但仅适用于光标仍在内部的情况bounds 有限对象称为limited function onSqMouseMove event MouseEvent if bounds
  • 在画布中移动按钮

    当鼠标悬停在 UIElement 上并且用户按下 Ctrl 键时 以下代码应该在画布中移动 UIElement void keydown Object sender KeyEventArgs e if e Key Key LeftCtrl
  • 如何运行本地 Windows 应用程序并将输出通过管道传输到浏览器

    我有 Windows 应用程序 EXE 文件是用 C 编写并使用 MS Visual Studio 构建的 它将 ASCII 文本输出到标准输出 我希望增强 ASCII 文本以包含有限的 HTML 和一些链接 我想调用此应用程序 EXE 文
  • 将向量列表转换为计数数据帧[重复]

    这个问题在这里已经有答案了 我有一个存储在如下列表中的字符向量列表 basket1 lt c Apple Orange Banana Apple Apple Grape basket2 lt c Grape Grape Grape Grap
  • 如何获取适配器内的视图高度以创建大小的位图?

    我将自定义 CursorAdapter 与自定义项一起使用 我需要视图高度来调整资源文件夹中位图的大小 并将此调整大小的位图设置为列表项中的 ImegeView Override public void bindView View view
  • 在 Firefox 中检测缩放

    我想检测浏览器是否放大或缩小 并不真正关心知道该值 但我认为无论如何都需要在决策过程中找到它 我已经阅读了很多关于该主题的其他 SO 帖子 但是没有一个给出的解决方案适用于 FF 尽管有 IE7 8 和 chrome 解决方案 哦 我不能使
  • 如何强制在派生类中调用基类构造函数?

    我相当确定基本的 C 问题 如果我有一个带有不带参数的构造函数的基类 并且只初始化一些受保护的成员 如果派生类与参数匹配 它是否也会立即调用此基构造函数 一厢情愿但不太可能的想法 如果不是 则为有没有办法强制它从派生类自动调用所述基构造函数
  • 数据绑定:如果属性不为空,则设置属性

    无法理解 仅当变量字段不为空时如何设置视图的某些属性 例如
  • 检查 python 类属性

    我需要一种方法来检查类 以便我可以安全地识别哪些属性是用户定义的类属性 问题是 dir inspect getmembers 等函数返回所有类属性 包括预定义的属性 例如 class doc dict hash 这当然是可以理解的 有人可能
  • 使用 VSTS 设置发布到文件夹

    我正在使用publish to folder通过右键单击项目 gt 发布 gt 发布到文件夹 通过 Visual Studio 选项 结果始终是已应用转换的可复制项目 我想使用 VSTS 自动化此过程并在 VSTS 上进行设置 我使用了后续
  • 如何在TreeView中显示目录? [复制]

    这个问题在这里已经有答案了 下面是我的代码 DirectoryInfo directoryInfo new DirectoryInfo C Users Shahul Documents Visual Studio 2010 Projects
  • sql if 在插入语句中没有选择

    昨天我问了这个问题 if在mysql中插入语句 https stackoverflow com questions 14960022 if in mysql insert statement答案非常有效 问题是 如果值不存在 我需要在表中插
  • 如何将字符串连接到现有文件?

    我有一个文本文件 其中有内容 我想向其中附加文本 这是我的代码 File outputFile new File hello out outputFile createSync List
  • 使用具有不同根和节点类型的 TreeTable

    我有以下问题 我想要一个类似 JTeeTable 的表组件 只不过树的根 下面的类 和节点不是同一类型 例如 假设我有以下课程 public final class Entry private int id private String t