java - 如何让我的 TreeCellRenderer 填充我的 JTree?

标签 java swing jpanel jtree renderer

如何让我的树单元填充我的 JTree 的宽度:

JTree tree = new JTree();
tree.setCellRenderer(new TreeCellRenderer() { 
    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean selected, boolean expanded, boolean leaf, int row, 
        boolean hasFocus) {
            // TODO: How do I make this panel fill the width 
            // of the JTree?
            JPanel panel = new JPanel();
            panel.add(new JLabel("ITEM");
            return panel;
        }
});
add(tree);

最佳答案

  • JPanel panel = new JPanel();JPanel是容器,

  • JPanel 默认返回 零维度

  • 只有空的 JPanel(仅 AFAIK)在 BorderLayotu 中返回 10px,在 JPanel 放置在北方的情况下, SOUTH, WEST, SOUTH 区域,然后创建非常漂亮的 10pxs EmptyBorders

  • 必须为 JPanel 重写 getPreferredSize,与在 Swing 中绘画所需的方法相同

  • 不知道为什么要将 JPanel 作为 Renderers JComponent 放入 JTree 中,也许还有其他方法),确保尽快发布 SSCCE

  • 以获得更好的帮助

关于java - 如何让我的 TreeCellRenderer 填充我的 JTree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075912/

相关文章:

java - 我的 JList 模型方法给我一个错误

java - 获取 JPanel 的 PaintComponent 元素以与其中的另一个 JPanel 一起使用

java - Android slider 布局和 NullPointerException

java - 获取的 URL 并保存到 Blobstore : AppEngine (java)

java - java swing 创建线程

Java 防止按钮在图标更改时调整大小

Java 语言断言错误

java - 如何使用 Mybatis 将 JavaBean 包含列表保存到 Sql?

java - 在java中使用多线程?

listCellRenderer 内的 java jcombobox