0
예를 들어 JTree가 내 바탕 화면에있는 파일을 표시하도록하려면 양식 편집기로 NetBeans에서 어떻게 할 수 있습니까?
도움 주셔서 감사합니다.NetBeans의 특정 디렉토리를 보여주는 JFrame에서 JTree를 어떻게 만듭니 까?
예를 들어 JTree가 내 바탕 화면에있는 파일을 표시하도록하려면 양식 편집기로 NetBeans에서 어떻게 할 수 있습니까?
도움 주셔서 감사합니다.NetBeans의 특정 디렉토리를 보여주는 JFrame에서 JTree를 어떻게 만듭니 까?
NetBeans의 특정 디렉토리를 보여주는 JFrame에서 JTree를 어떻게 만듭니 까?
다음은 기본적인 예입니다. 입력 텍스트 필드와 언론에 디렉토리 이름을 입력
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class TreeFileSystem extends JPanel
implements ActionListener, TreeWillExpandListener, TreeSelectionListener
{
private int fileIndex;
private JTree tree;
private DefaultTreeModel model;
private JTextField textField;
public TreeFileSystem()
{
super(new BorderLayout());
textField = new JTextField("..\\");
textField.addActionListener(this);
add(textField, BorderLayout.NORTH);
tree = new JTree(new DefaultMutableTreeNode());
JScrollPane scrollPane = new JScrollPane(tree);
add(scrollPane);
tree.addTreeWillExpandListener(this);
tree.addTreeSelectionListener(this);
}
public void actionPerformed(ActionEvent e)
{
File file = new File(textField.getText());
if (file.exists())
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode(file);
model = new DefaultTreeModel(root);
addNodes(root, true);
tree.setModel(model);
}
}
private void addNodes(DefaultMutableTreeNode root, boolean addChildNodes)
{
File file = (File)root.getUserObject();
if (!file.isDirectory()) return;
File[] files = file.listFiles();
if (files == null) return;
int directoryInsert = 0;
for (int i = 0; i < files.length; i++)
{
file = files[i];
DefaultMutableTreeNode node = new MyDefaultMutableTreeNode(file);
if (file.isDirectory())
root.insert(node, directoryInsert++);
else
root.insert(node, i);
if (addChildNodes)
addNodes(node, false);
}
}
public void treeWillExpand(TreeExpansionEvent e) throws ExpandVetoException
{
if (tree.hasBeenExpanded(e.getPath())) return;
TreePath path = e.getPath();
if (path.getPathCount() == 2) return;
DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getPathComponent(path.getPathCount() - 1);
addNodes(node, false);
}
public void treeWillCollapse(TreeExpansionEvent e) {}
public void valueChanged(TreeSelectionEvent e)
{
final DefaultMutableTreeNode root = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if (root == null) return;
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
File file = new File("file" + fileIndex++);
System.out.println(file);
DefaultMutableTreeNode node = new MyDefaultMutableTreeNode(file);
// root.insert(node, 0);
// model.reload(root);
체크 아웃 앤드류의 [파일 브라우저] (https://codereview.stackexchange.com/questions/4446/file-browser-gui) – camickr