【发布时间】:2022-01-30 19:36:38
【问题描述】:
我是新手,JTree 让我很伤心。坚持不下去了所以希望,你能帮助我。
我真正想要的是,正确显示JTextField 和JTree,当我从PC 写入路径时,我想查看JTree 中的所有文件夹和文件。
我做了一些事情,但真的希望你能帮助我。谢谢。
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class Main extends JFrame {
JTextField path = new JTextField();
public static void main(String[] args) {
new Main().setVisible(true);
}
private JTree jTree1;
private JTree jTree2;
File fileRoot;
File fileRoot2;
DefaultMutableTreeNode root = new DefaultMutableTreeNode(fileRoot);
DefaultTreeModel model = new DefaultTreeModel(root);
DefaultMutableTreeNode root2 = new DefaultMutableTreeNode(fileRoot2);
DefaultTreeModel model2 = new DefaultTreeModel(root2);
public Main() {
setLayout(new BorderLayout());
this.jTree1 = new JTree();
this.add(this.jTree1);
this.jTree2 = new JTree();
this.add(this.jTree2);
JScrollPane scrollpane = new JScrollPane();
scrollpane.setBounds(100, 100, 100, 300);
scrollpane.getViewport().add(jTree1);
add(BorderLayout.NORTH, path);
add(BorderLayout.WEST, scrollpane);
JScrollPane scrollpane2 = new JScrollPane();
scrollpane2.getViewport().add(jTree2);
add(BorderLayout.EAST, scrollpane2);
this.jTree1.setModel(model);
this.jTree2.setModel(model2);
this.pack();
path.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String JtreeString = path.getText().toString().replaceAll("[\\[\\]]", "")
.replace(", ", "\\");
fileRoot = new File(JtreeString);
File[] files = fileRoot.listFiles();
for (File file : files) {
root.add(new DefaultMutableTreeNode(file));
}
model.reload(root);
}
});
}
}
【问题讨论】:
标签: java swing jtextfield keypress jtree