gpt4 book ai didi

java - 没有LayoutManager就无法使用JTree

转载 作者:行者123 更新时间:2023-12-01 09:42:05 24 4
gpt4 key购买 nike

我尝试向我的程序添加浏览文件的功能。我想使用这里的代码:1 (吉尔伯特的回答),但这对我来说很重要,让 JTree 处于特定的位置和大小。不幸的是,当我这样做时,当我点击 JTree 时它没有“响应”。

代码如下:

public class Frame extends JFrame implements Runnable {

private DefaultMutableTreeNode root;

private DefaultTreeModel treeModel;

private JTree tree;
public File fileRoot;

public Frame(){
super("FileBrowser");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);

setSize(480, 320);
setLocation(50,50);
getContentPane().setLayout(null);

fileRoot = new File("C:/");
root = new DefaultMutableTreeNode(new FileNode(fileRoot));
treeModel = new DefaultTreeModel(root);

tree = new JTree(treeModel);

tree.setBounds(10, 39, 155, 177);
getContentPane().add(tree);
tree.setShowsRootHandles(true);

}


@Override
public void run() {
CreateChildNodes ccn = new CreateChildNodes(fileRoot, root);
new Thread(ccn).start();
}

}

主类:

public class main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Frame());
}
}

当我评论时

getContentPane().setLayout(null);

并让 JTree 填充整个 Frame,它会按预期工作

最佳答案

尝试更改以下行:

tree.setBounds(10, 39, 155, 177);
getContentPane().add(tree);

JScrollPane scroller = new JScrollPane(tree);
scroller.setBounds(10, 39, 155, 177);
getContentPane().add(scroller);

如果我的建议没有效果,尝试创建SSCCE ,这样我就可以看到出了什么问题。

附注尝试学习布局管理器。它们非常有用。

关于java - 没有LayoutManager就无法使用JTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com