开发者

JTree enlarges width when a node gets expanded

开发者 https://www.devze.com 2023-03-03 09:41 出处:网络
I\'ve got a real hard problem with a JTree. I\'ve implemented a JTree with a selfwritten Model (wich is extended from TreeModel).

I've got a real hard problem with a JTree.

I've implemented a JTree with a selfwritten Model (wich is extended from TreeModel).

    fileSystemModel = new MyModel(new File(directory));
    fileTree = new JTree(fileSystemModel);
    file开发者_运维知识库Tree.setEditable(true);
    fileTree.setDragEnabled(true);
    fileTree.addTreeSelectionListener(new TreeSelectionListener() {

        public void valueChanged(TreeSelectionEvent event) {
            File file = (File) fileTree.getLastSelectedPathComponent();
        }
    });

So i added it to a JPanel and this JPanel to a JFrame.

No i got this Problem: I start the Frame, and if i expand a single Node, the width of JTree is going to enlarge to the width which is needed to show the leafs.

I tried to set this:

fileTree.setMaximumSize(width, height);

But it failed and i also tried to embedd the JTree into JScrollPanel with a Maximum-Size, and this has also failed.

The JTree is still adjusting its width how many it needs.

So i tried now for two days and doesn't find anything, so i would be apprecciate if someone of you could help me.

Thanks!


The effect described is characteristic of the default FlowLayout of JPanel. You can see the change when you click on the left panel is this example.

Addendum: As seen in the example, GridLayout allows the component to expand; it works particularly well with setVisibleRowCount() followed by pack().

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号