Jtree 的监听
来源:互联网 发布:域名指向ip端口 编辑:程序博客网 时间:2024/06/04 01:17
import java.awt.Color;
import javax.swing.*;
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.TreePath;
public class TestJTree implements TreeSelectionListener {
JTree tree;
DefaultMutableTreeNode root;
DefaultTreeModel model;
JSplitPane mainSplitpane;
public TestJTree() {
mainSplitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); // 分割面板
model = new DefaultTreeModel(root); // 设置树的缺省模式
tree = new JTree(model);
root = new DefaultMutableTreeNode("TestTree");//树根
DefaultMutableTreeNode level1 = new DefaultMutableTreeNode("A");
DefaultMutableTreeNode level2 = new DefaultMutableTreeNode("分支1"); // 树叶
DefaultMutableTreeNode level3 = new DefaultMutableTreeNode("分支2");
level1.add(level2);
level1.add(level3);
root.add(level1);
tree = new JTree(root);
DefaultTreeCellRenderer render = new DefaultTreeCellRenderer(); // 树叶
render.setTextSelectionColor(Color.blue); // 选择时候的颜色
render.setTextNonSelectionColor(Color.black); // 非选择时候颜色
tree.setCellRenderer(render);
tree.addTreeSelectionListener(this);
JPanel firstimg = new JPanel();
firstimg.setLayout(null);
ImageIcon img = new ImageIcon("hy.jpg");
JLabel imgLabel = new JLabel(img); // 面板,此处实际是一张图片
imgLabel.setBounds(0, 0, img.getIconWidth(), img
.getIconHeight());
firstimg.add(imgLabel);
mainSplitpane.setDividerLocation(185);
mainSplitpane.setLeftComponent(tree);
mainSplitpane.setRightComponent(firstimg);
JFrame jf = new JFrame("TestTree");
jf.setSize(900, 600);
jf.setContentPane(mainSplitpane);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void valueChanged(TreeSelectionEvent e) {
if (e.getSource() == tree) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();
if (node.isLeaf()) {
System.out.println(node.toString());
TreePath visiblePath = new TreePath(model.getPathToRoot(node));
System.out.println(visiblePath.toString());
if (node.toString().equals("分支1")) {
//mainSplitpane.setRightComponent(...do what you want here...); 重点在这里
}
}
}
}
public static void main(String[] args) {
new TestJTree();
}
}
import javax.swing.*;
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.TreePath;
public class TestJTree implements TreeSelectionListener {
JTree tree;
DefaultMutableTreeNode root;
DefaultTreeModel model;
JSplitPane mainSplitpane;
public TestJTree() {
mainSplitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); // 分割面板
model = new DefaultTreeModel(root); // 设置树的缺省模式
tree = new JTree(model);
root = new DefaultMutableTreeNode("TestTree");//树根
DefaultMutableTreeNode level1 = new DefaultMutableTreeNode("A");
DefaultMutableTreeNode level2 = new DefaultMutableTreeNode("分支1"); // 树叶
DefaultMutableTreeNode level3 = new DefaultMutableTreeNode("分支2");
level1.add(level2);
level1.add(level3);
root.add(level1);
tree = new JTree(root);
DefaultTreeCellRenderer render = new DefaultTreeCellRenderer(); // 树叶
render.setTextSelectionColor(Color.blue); // 选择时候的颜色
render.setTextNonSelectionColor(Color.black); // 非选择时候颜色
tree.setCellRenderer(render);
tree.addTreeSelectionListener(this);
JPanel firstimg = new JPanel();
firstimg.setLayout(null);
ImageIcon img = new ImageIcon("hy.jpg");
JLabel imgLabel = new JLabel(img); // 面板,此处实际是一张图片
imgLabel.setBounds(0, 0, img.getIconWidth(), img
.getIconHeight());
firstimg.add(imgLabel);
mainSplitpane.setDividerLocation(185);
mainSplitpane.setLeftComponent(tree);
mainSplitpane.setRightComponent(firstimg);
JFrame jf = new JFrame("TestTree");
jf.setSize(900, 600);
jf.setContentPane(mainSplitpane);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void valueChanged(TreeSelectionEvent e) {
if (e.getSource() == tree) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();
if (node.isLeaf()) {
System.out.println(node.toString());
TreePath visiblePath = new TreePath(model.getPathToRoot(node));
System.out.println(visiblePath.toString());
if (node.toString().equals("分支1")) {
//mainSplitpane.setRightComponent(...do what you want here...); 重点在这里
}
}
}
}
public static void main(String[] args) {
new TestJTree();
}
}
- JTree的事件监听
- Jtree 的监听
- jtree 部分监听
- JTree的节点式样美化实现鼠标事件监听
- JTree控件的使用
- JTree控件的使用
- JTree的操作
- JTree的常用操作
- 一个JTree的Model
- JTree控件的用法
- JTree的使用
- JTree控件的使用
- JTree 的实例
- JTree做的JFileTree
- JTree的用法
- JTree的总结
- JTree的一些用法
- JTree的一些操作
- android:gravity和android:layout_gravity区别
- OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)
- UVA - 10056 What is the Probability ?
- UVa 11417 GCD (欧拉φ函数)
- java多线程总结二:后台线程(守护线程)
- Jtree 的监听
- NYIST_12周赛(一)题目题解
- JAX-WS WebService
- ocp-047-4 drop column set unused
- 学长们的求职血泪史(C/C++/JAVA)
- JAVA面试题解惑系列 – final、finally和finalize的区别
- verilog中的 阻塞赋值 与 非阻塞赋值 详解。
- 【交互】MFC架构分析
- windows下的正则式工具介绍之一:RegexBuddy