java jtree 树行结构
来源:互联网 发布:英国现存贵族 知乎 编辑:程序博客网 时间:2024/06/14 20:45
package test;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
public class MyTree extends JFrame implements TreeSelectionListener,ActionListener{
private JTree jt;
private DefaultTreeModel model;
private DefaultTreeCellRenderer render;
private TreeNode node;
private JButton add_sib,add_child,delete,update;
public MyTree(){
model=new DefaultTreeModel(getNode());
jt=new JTree(model);
jt.addTreeSelectionListener(this);
JScrollPane jsc=new JScrollPane(jt);
add_sib=new JButton("添加同级节点");
add_child=new JButton("添加子节点");
delete=new JButton("删除");
update=new JButton("编辑");
add_sib.addActionListener(this);
add_child.addActionListener(this);
delete.addActionListener(this);
update.addActionListener(this);
Box box=Box.createHorizontalBox();
box.add(add_sib);
box.add(add_child);
box.add(delete);
box.add(update);
add(jsc,BorderLayout.CENTER);
add(box,BorderLayout.SOUTH);
this.pack();
this.setResizable(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public TreeNode getNode(){
DefaultMutableTreeNode root=new DefaultMutableTreeNode("中国");
DefaultMutableTreeNode province=new DefaultMutableTreeNode("广东");
DefaultMutableTreeNode city=new DefaultMutableTreeNode("深圳");
root.add(province);
province.add(city);
DefaultMutableTreeNode area=new DefaultMutableTreeNode("福田区");
city.add(area);
area=new DefaultMutableTreeNode("保安区");
city.add(area);
city=new DefaultMutableTreeNode("广州");
province.add(city);
province=new DefaultMutableTreeNode("江西");
city=new DefaultMutableTreeNode("南昌");
root.add(province);
province.add(city);
area=new DefaultMutableTreeNode("青山湖区");
city.add(area);
area=new DefaultMutableTreeNode("高新区");
city.add(area);
city=new DefaultMutableTreeNode("九江");
province.add(city);
return root;
}
public static void main(String[] args) {
MyTree mt=new MyTree();
}
@Override
public void valueChanged(TreeSelectionEvent e) {
// System.out.println(jt.getLastSelectedPathComponent().toString());
}
@Override
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");
DefaultMutableTreeNode selectNode=(DefaultMutableTreeNode)jt.getLastSelectedPathComponent();
if(e.getSource().equals(add_sib)){
DefaultMutableTreeNode parent=(DefaultMutableTreeNode)selectNode.getParent();
if(parent!=null){
int index=parent.getIndex(selectNode);
model.insertNodeInto(newNode, parent, index+1);
}
}else if(e.getSource().equals(add_child)){
int count=selectNode.getChildCount();
model.insertNodeInto(newNode, selectNode, count);
}
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
jt.scrollPathToVisible(path);
}
}
- java jtree 树行结构
- Java Swing编程:JTree树
- Java Swing编程:JTree树
- JTree树形结构
- java JTree树 叶子节点 不同图标
- java JTree JCheckBox 树复选框
- 【JAVA】JTree遍历指定目录生成树
- Java---Swing(3)---------------------JTree
- java JTree小结
- java swing jtree例子
- JAVA SWING JTREE
- Java JTree的用法
- JAVA JTree的使用
- Java之JTree
- java树 JTree实例(可动态添加节点)
- JTree--树(基本使用)
- JTree实现文件树
- jtree
- Axis2 错误:An error occurred while completing process -java.lang.reflect.InvocationTargetException
- 多工具条编程秘技
- Section 1.1 Your Ride Is Here
- hadoop分布式集群的搭建
- mc9s12dg128使用定时器的输出比较产生定时中断代码亮1S灭1S
- java jtree 树行结构
- Java的反射机制
- 正则表达式集锦--未完待续
- Windows下Critical Section、Event、Mutex、Semaphores区别(ZZ)
- 妞,你给爷听好了...
- ORACLE卸载问题
- Meego上网本疯狂体验
- .Net ( C# ) 调用控制台程序并取得输出结果
- 开始发帖了