?? testtree1.java
字號(hào):
package com.test;
package com.test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.tree.*;
import javax.swing.event.*;
class TestTree extends JFrame implements TreeModelListener{
public TestTree() {
Container c=getContentPane();
c.setLayout(new BorderLayout());
rootNode = new DefaultMutableTreeNode("Root Node");
treeModel = new DefaultTreeModel(rootNode);
treeModel.addTreeModelListener(new MyTreeModelListener());
tree = new JTree(treeModel);
tree.setEditable(true);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setShowsRootHandles(true);
tree.addTreeExpansionListener(this);
tree.addTreeWillExpandListener(this);
DefaultMutableTreeNode dtree=new DefaultMutableTreeNode("文件");
DefaultMutableTreeNode dtreea=new DefaultMutableTreeNode("我的文件");
DefaultMutableTreeNode dtreeb=new DefaultMutableTreeNode("你的文件");
DefaultMutableTreeNode dtreea1=new DefaultMutableTreeNode("我的文件1");
DefaultMutableTreeNode dtreea2=new DefaultMutableTreeNode("我的文件2");
DefaultMutableTreeNode dtreea3=new DefaultMutableTreeNode("我的文件3");
DefaultMutableTreeNode dtreeb1=new DefaultMutableTreeNode("你的文件1");
DefaultMutableTreeNode dtreeb2=new DefaultMutableTreeNode("你的文件2");
DefaultMutableTreeNode dtreeb3=new DefaultMutableTreeNode("你的文件3");
dtree.add(dtreea);
dtree.add(dtreeb);
dtreea.add(dtreea1);
dtreea.add(dtreea2);
dtreea.add(dtreea3);
dtreeb.add(dtreeb1);
dtreeb.add(dtreeb2);
dtreeb.add(dtreeb3);
JTree t=new JTree(dtree);
c.add(t,BorderLayout.CENTER);
}
public void treeNodesChanged(TreeModelEvent e) {
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)
(e.getTreePath().getLastPathComponent());
try {
int index = e.getChildIndices()[0];
node = (DefaultMutableTreeNode)
(node.getChildAt(index));
} catch (NullPointerException exc) {}
System.out.println("The user has finished editing the node.");
System.out.println("New value: " + node.getUserObject());
}
public void treeNodesInserted(TreeModelEvent e) { }
public void treeNodesRemoved(TreeModelEvent e) { }
public void treeStructureChanged(TreeModelEvent e) { }
public DefaultMutableTreeNode addObject(Object child) {
DefaultMutableTreeNode parentNode = null;
TreePath parentPath = tree.getSelectionPath();
if (parentPath == null) {
//There is no selection. Default to the root node.
parentNode = rootNode;
} else {
parentNode = (DefaultMutableTreeNode)
(parentPath.getLastPathComponent());
}
return addObject(parentNode, child, true);
}
public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
Object child,
boolean shouldBeVisible) {
DefaultMutableTreeNode childNode =
new DefaultMutableTreeNode(child);
treeModel.insertNodeInto(childNode, parent,
parent.getChildCount());
//Make sure the user can see the lovely new node.
if (shouldBeVisible) {
tree.scrollPathToVisible(new TreePath(childNode.getPath()));
}
return childNode;
}
private void LoadLazyChildren(){
DefaultMutableTreeNode child;
child = new DefaultMutableTreeNode("Thai Barbeque");
dummyParent.add(child);
child = new DefaultMutableTreeNode("Goat Hill Pizza");
dummyParent.add(child);
textArea.append(" Thai Barbeque and Goat Hill Pizza are loaded lazily");
}
public void treeWillExpand(TreeExpansionEvent e)
throws ExpandVetoException {
saySomething("You are about to expand node ", e);
int n = JOptionPane.showOptionDialog(
this, willExpandText, willExpandTitle,
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,willExpandOptions,willExpandOptions[1]);
LoadLazyChildren();
}
public static void main(String args[]) {
TestTree mainFrame = new TestTree();
mainFrame.setSize(400, 400);
mainFrame.setTitle("TestTree");
mainFrame.setVisible(true);
}
}
//http://www.0531s.com/www/29/2007-12/14615.html
//http://www.cnblogs.com/huqingyu/archive/2008/04/09/1145894.html
//http://hellowxj.spaces.live.com/blog/cns!1479846e25dda5de!163.entry
//http://www.fastgun.net/new/jc/sort7/Child46/info-11452.html
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -