package treeTest;
//13225678980import java.awt.*;
import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;import java.awt.Rectangle;import java.awt.event.*;import java.io.File;
public class treeTest extends JFrame { DefaultMutableTreeNode modelTree; JScrollPane jScrollPane1 = new JScrollPane(); JTree tree_t; JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel lbl_parents = new JLabel(); JButton btn_add = new JButton(); JButton btn_delete = new JButton(); JButton btn_clear = new JButton(); DefaultTreeCellEditor tce; ImageIcon secondkinds = new ImageIcon(treeTest.class.getResource( "bullet.gif")); JTextField jtext_ower = new JTextField(); public treeTest() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } }
private void inintree(DefaultMutableTreeNode model, File file) { DefaultMutableTreeNode tmep = new DefaultMutableTreeNode(file.getName()); model.add(tmep); if (file.isDirectory()) { File[] tempfile = file.listFiles(); if (tempfile.length != 0) { for (int i = 0; i < tempfile.length; i++) { inintree(tmep, tempfile[i]); } } } }
private void jbInit() throws Exception { File[] file = File.listRoots(); modelTree = new DefaultMutableTreeNode(file[2].getPath()); File[] file1 = file[2].listFiles(); for (int i = 0; i < file1.length; i++) { inintree(modelTree, file1[i]); } tree_t = new JTree(modelTree); DefaultTreeCellRenderer render = new DefaultTreeCellRenderer(); render.setLeafIcon(secondkinds); render.setFont(new Font("宋体", 0, 10)); tree_t.setCellRenderer(render); tree_t.setOpaque(true); getContentPane().setLayout(null); jScrollPane1.setBounds(new Rectangle(10, 15, 141, 227)); lbl_parents.setFont(new java.awt.Font("宋体", Font.BOLD, 16)); btn_add.setBounds(new Rectangle(175, 180, 61, 25)); btn_add.setText("增加"); btn_delete.setBounds(new Rectangle(247, 179, 63, 26)); btn_delete.setText("删除"); btn_clear.setBounds(new Rectangle(322, 180, 60, 25)); btn_clear.setToolTipText(""); btn_clear.setText("清空"); this.getContentPane().setBackground(SystemColor.control); jtext_ower.setBounds(new Rectangle(238, 95, 96, 27)); jtext_ower.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { jtext_ower_keyPressed(e); } });
this.getContentPane().add(jScrollPane1); jScrollPane1.getViewport().add(tree_t); lbl_parents.setBounds(new Rectangle(239, 25, 124, 26)); jLabel2.setFont(new java.awt.Font("宋体", Font.BOLD, 16)); jLabel2.setToolTipText(""); jLabel2.setText("本目录"); jLabel2.setBounds(new Rectangle(174, 95, 58, 20)); this.getContentPane().add(jLabel1); this.getContentPane().add(lbl_parents); this.getContentPane().add(jLabel2); this.getContentPane().add(btn_add); this.getContentPane().add(btn_delete); this.getContentPane().add(btn_clear); this.getContentPane().add(jtext_ower); jLabel1.setFont(new java.awt.Font("宋体", Font.BOLD, 16)); jLabel1.setToolTipText(""); jLabel1.setText("父目录"); jLabel1.setBounds(new Rectangle(174, 24, 59, 27)); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(400, 300); this.setLocation((screen.width - 300) / 2, (screen.height - 300) / 2); this.setVisible(true); /* tree_t.setEditable(true); tce = (DefaultTreeCellEditor) tree_t.getCellEditor();*/ tree_t.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { TreePath tp = tree_t.getSelectionPath(); DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) tp. getLastPathComponent(); if (dmtn.isRoot()) { lbl_parents.setText(""); jtext_ower.setText(dmtn.toString()); } else { DefaultMutableTreeNode topdmtn = (DefaultMutableTreeNode) tp.getParentPath().getLastPathComponent(); lbl_parents.setText(topdmtn.toString()); jtext_ower.setText(dmtn.toString()); } } }); btn_add.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNode(); } }); btn_delete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { delete(); } }); btn_clear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { modelTree.removeAllChildren(); tree_t.updateUI(); } }); }
private void delete() { TreePath treepath = tree_t.getSelectionPath(); DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) treepath. getLastPathComponent(); if (dmtn.isRoot()) { JOptionPane.showMessageDialog(this, "根目录不能删除"); } else if (dmtn.getChildCount() != 0) { JOptionPane.showMessageDialog(this, "文件架非空,不能删除"); } else { DefaultMutableTreeNode top = (DefaultMutableTreeNode) tree_t. getSelectionPath().getParentPath(). getLastPathComponent(); top.remove(dmtn); tree_t.updateUI(); } }
private void addNode() { String TreeNodeName = null; if (!((TreeNodeName = JOptionPane.showInputDialog(this, "请输入接点名称", "", JOptionPane.YES_OPTION)) == null)) { if (TreeNodeName.trim().length() != 0) { DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode( TreeNodeName); if (tree_t.getSelectionCount() != 0) { tree_t.setEditable(true); TreePath treepath = tree_t.getSelectionPath(); DefaultMutableTreeNode topModelNode = ( DefaultMutableTreeNode) treepath. getLastPathComponent(); topModelNode.insert(dmtn, topModelNode.getChildCount()); tree_t.updateUI(); } } } }
public static void main(String[] args) { treeTest treetest = new treeTest(); }
public void jtext_ower_keyPressed(KeyEvent e) { TreePath tp = tree_t.getSelectionPath(); DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) tp. getLastPathComponent(); dmtn.setUserObject(jtext_ower.getText()); tree_t.updateUI();
}}