5

ツリーセルを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);
4

1 に答える 1

5
  • JPanel panel = new JPanel();JPanelコンテナです、

  • JPanelデフォルトで空の場合はzero Dimension、を返します。

  • JPanelsがNORTH、SOUTH、WEST、SOUTHの各エリアに配置され、非常に優れた10ピクセルが作成された場合は、空JPanel(AFAIKのみ)のみが返さ10pxれます。BorderLayotuEmptyBorders

  • Swingでのペイントに必要なのと同じ方法でオーバーライドgetPreferredSizeする必要がありますJPanel

  • 理由がわからないので、別の方法があるかもしれません。もっと早く投稿してJPanelくださいRenderers JComponentJTreeSSCCE

于 2013-02-25T22:12:02.340 に答える