【问题标题】:JTree with left and right-aligned text in cells?JTree在单元格中具有左右对齐的文本?
【发布时间】:2010-01-21 10:13:51
【问题描述】:

我要做的是创建一个 JTree,其中每个单元格都包含普通文本,但也包含每个单元格的右对齐文本(右对齐到树的边缘,无论层次结构如何)。

我尝试创建自己的 TreeCellRenderer,但单元格的大小没有更新。我还尝试使用自定义树 UI 的 this idea,但遇到了类似的问题。

我还尝试创建一个自定义组件,将 JPanel “粘合”到树的右侧。这是最成功的,但我无法让树单元向右延伸并触摸这个额外的面板:

alt text http://img718.imageshack.us/img718/3676/problem.png

【问题讨论】:

    标签: java swing layout jtree


    【解决方案1】:

    您可以尝试使用来自 SwingX 包的 JXTreeTable。

    jxtreetable example http://blogs.sun.com/geertjan/resource/outline-tim-browser.png

    然后您将定义这样一个包含两列的对象(一列用于树,另一列用于右对齐文本),它应该可以正常工作。

    不过,为了防止它看起来像一张表格,我建议您停用标题 (setTableHeader(null)),并使用他们的“打包”方法,使列的大小达到最佳。

    【讨论】:

    • 有趣。谢谢! ...但是由于我已经有一个非常定制的 JTree,我不想从第 1 格开始,它的组件基本上是一个 JTable...
    • @Epaga - 请注意,JXTreeTable 实际上是一个表,其中有一个树作为第一列的渲染器(加上许多其他调整以使其工作)。关键是这非常相似,您甚至可以为第一列设置您已经使用的树单元格渲染器。数据像树一样管理,基本上树节点包含一个“getValueAt”,所以它不会改变你的数据模型,通常情况下。
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2014-12-12
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多