英文:
Partially visible TreeNodes in java swing
问题
我正在使用 java.swing 中的 JTree 制作一个目录查看器。GUI 的问题是节点部分可见,只有在展开子节点后才可见。
以下是上述代码:
public class ProjectStructure extends JPanel {
private JTree directory;
public ProjectStructure() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
Dimension size = getPreferredSize();
size.width = 250;
setPreferredSize(size);
setBorder(BorderFactory.createTitledBorder("Explorer"));
}
void displayFilesInDirectory(File file) {
DefaultMutableTreeNode root = new DefaultMutableTreeNode(file.getName());
generateTreeView(file, root);
directory = new JTree(root);
directory.setVisible(true);
add(directory);
}
private void generateTreeView(File rootFile, DefaultMutableTreeNode parent) {
File[] files = rootFile.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(files[i].getName());
parent.add(node);
if (files[i].isDirectory()) {
generateTreeView(files[i], node);
}
}
}
}
}
另外,我可以给 JPanel 添加可通过拖放调整大小的功能吗?
英文:
I am making a directory viewer with the help of JTree in java.swing The problem with the GUI is that the nodes are partially visible and are visible only after I exapand the child nodes
Here is the code to the above
public class ProjectStructure extends JPanel{
private JTree directory;
public ProjectStructure() {
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
Dimension size = getPreferredSize();
size.width = 250;
setPreferredSize(size);
setBorder(BorderFactory.createTitledBorder("Explorer"));
}
void displayFilesInDirectory(File file){
DefaultMutableTreeNode root = new DefaultMutableTreeNode(file.getName());
generateTreeView(file, root);
directory = new JTree(root);
directory.setVisible(true);
add(directory);
}
private void generateTreeView(File rootFile, DefaultMutableTreeNode parent) {
File[] files = rootFile.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(files[i].getName());
parent.add(node);
if (files[i].isDirectory()) {
generateTreeView(files[i], node);
}
}
}
}
}
Also can I make the JPanel resizable with a drag and drop feature?
专注分享java语言的经验与见解,让所有开发者获益!
评论