import java.awt.event.*;
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.*;
import java.awt.*;
import java.awt.event.*;
public class Tree extends JFrame implements TreeSelectionListener {
private JLabel label;
public Tree()
{
super("树形菜单");setSize(400,400);
Container container=getContentPane();
DefaultMutableTreeNode rooTreeNode=new DefaultMutableTreeNode("文本编辑器");
DefaultMutableTreeNode node1=new DefaultMutableTreeNode("文件");
DefaultMutableTreeNode node2=new DefaultMutableTreeNode("编辑");
DefaultTreeModel treeModel=new DefaultTreeModel(rooTreeNode);
treeModel.insertNodeInto(node1, rooTreeNode, rooTreeNode.getChildCount());
treeModel.insertNodeInto(node2, rooTreeNode, rooTreeNode.getChildCount());
DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode("打开");
treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
leafnode=new DefaultMutableTreeNode("保存");
treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
leafnode=new DefaultMutableTreeNode("另存为");
treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
leafnode=new DefaultMutableTreeNode("关闭");
treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
leafnode=new DefaultMutableTreeNode("剪切");
treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
leafnode=new DefaultMutableTreeNode("复制");
treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
leafnode=new DefaultMutableTreeNode("粘贴");
treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
JTree tree=new JTree(treeModel);
// tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SIN)
tree.addTreeSelectionListener(this);
tree.setRowHeight(20);
/* DefaultTreeCellRenderer cellRenderer=(DefaultTreeCellRenderer)tree.getCellRenderer();
cellRenderer.setFont(new Font("Serif",Font.PLAIN,14));
cellRenderer.setBackgroundSelectionColor(Color.white);
cellRenderer.setBackgroundNonSelectionColor(Color.yellow);
cellRenderer.setBorderSelectionColor(Color.blue);*/
container.add(new JScrollPane(tree));
label=new JLabel("你当前所选的节点为:",JLabel.CENTER);
label.setFont(new Font("Serif",Font.PLAIN,14));
container.add(label,BorderLayout.SOUTH);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void valueChanged(TreeSelectionEvent arg0)
{
// TODO Auto-generated method stub
JTree tree=(JTree)arg0.getSource();
DefaultMutableTreeNode selectionNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String nodename=selectionNode.toString();
label.setText("您当权选取的节点为:"+nodename);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tree d=new Tree();
}
}
分享到:
相关推荐
在Swing中,`JTree`组件是用于显示和操作树形数据结构的控件。当我们处理大量数据时,一次性加载所有节点可能会导致性能问题,这时就需要用到“懒加载”(Lazy Loading)技术。 懒加载是一种优化策略,它只在需要时...
以上就是关于Swing实现树形结构的一些核心知识点,具体的实现细节将依赖于`TreeMenu.java`和`TreeMenu2.java`的源代码内容。这两个示例文件可能包含了如何创建、操作和显示树形结构的各种示例,对于理解和学习Swing...
本项目“基于JAVA的Tree树形菜单管理系统源代码”提供了一个实现这种功能的实例,展示了如何利用Java语言来创建一个美观且易用的树形菜单系统。 在Java中,树形控件的实现主要依赖于Java Swing库,特别是`javax....
treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。 优点 兼容主流浏览器: 支持IE6和IE6+, Firefox, chrome, Opera, Safari 接口简洁: 在普通...
在Swing中,我们可以创建各种用户界面元素,如按钮、文本框、面板等,其中包括树形视图(JTree)。在描述中提到的“java Swing带复选框的树”,即在JTree的基础上增加了复选框功能,允许用户对树结构中的节点进行...
Java的Swing库提供了丰富的功能,使得在各种应用程序中实现树形菜单变得简单且灵活。不过,这只是一个基础的实现,实际应用中可能还需要处理更复杂的逻辑,例如加载异步数据、支持拖放操作等。在实践中,不断学习和...
在Swing中,`javax.swing.tree`包提供了`JTree`组件,用于在GUI中展示树形数据。`JTree`可以自定义节点渲染、监听节点事件等。对于JavaFX,`TreeView`类是构建树形结构的主要工具,支持更多的现代UI特性。 2. **JSP...
除了基本的实现,Java中还有`java.awt.Tree`和`javax.swing.JTree`,这两个类主要用于图形用户界面(GUI)中展示树形结构,如文件系统目录树。它们提供了丰富的事件处理和可视化定制功能。 在实际开发中,选择哪种...
在"Swing展示的文件系统树"这个主题中,我们将深入探讨如何使用`JTree`来创建一个动态显示文件系统的视图。 首先,`JTree`是`javax.swing`包的一部分,它继承自`JComponent`,并实现了`Scrollable`接口,因此可以...
在Java中,我们可以使用Java Swing或JavaFX库来创建桌面应用的树形菜单,而在Web应用中,通常会借助于JavaScript库如jQuery UI或JSTree,并通过Ajax与后端服务器进行交互,实现数据的动态加载。后端服务器(通常基于...
Java树形控件,通常指的是Java Swing或JavaFX中的JTree组件,它是用户界面中用于显示数据层次结构的可视化工具。在Java编程中,树形控件被广泛应用于表示文件系统、组织结构或其他具有层级关系的数据。下面我们将...
在Java Swing库中,"复选框树"(Checkbox Tree)是一种可视化的组件,它将树形结构的数据与复选框结合,用户可以选择或取消选择树中的节点。这个组件非常适合于展示具有层次关系且需要多选操作的数据。下面我们将...
在Java编程语言中,"Tree"通常指的是树形数据结构的实现,这在软件开发中具有广泛的应用。本文将深入探讨几种开源的Java Tree组件,它们可以帮助开发者高效地处理和展示树状数据。 1. **JTree(Java Swing组件)** ...
`JTree`是Swing提供的用于显示树形结构数据的组件。在示例中,我们首先创建了一个`DefaultMutableTreeNode`对象`top`作为树的根节点,然后添加了其他子节点。`DefaultMutableTreeNode`是一个可变的树节点,允许添加...
8. 树形视图(JTree):用于展示层次结构的数据,如文件系统目录结构。 9. 滚动面板(JScrollPane):用于包含可能超出屏幕范围的组件,如大表格或长文本区域。 10. 综合布局管理:Swing提供了多种布局管理器,如...
在前端实现中,通常使用JSON对象来存储树形数据,每个节点包含一个标识符(ID)、名称、以及指向子节点的引用。展示时,可以通过递归函数将这些数据转化为可交互的HTML元素。 3. **全选和反选(Select All and ...
根据提供的文件信息,我们可以分析并总结出以下关于“Java实现动态改变树形结构中主节点的名称”的相关知识点: ### 一、理解树形结构 在计算机科学中,树形结构是一种常用的数据组织形式,它将数据组织成类似于树...
4. **树视图(TreeView)**:在Java Swing或JavaFX中,可以使用JTree或TreeView组件来展示树形结构。这些组件提供了API来添加、删除和更新节点,以及设置显示样式。 具体实现步骤如下: 1. **构建树结构**:首先,...
在Java Swing中,`JTree`是表示树形数据的组件。它能够显示一个可扩展的节点结构,这些节点可以代表文件、目录、数据库记录或其他任何层次结构的数据。`JTree`通常结合`DefaultMutableTreeNode`类来使用,后者是树...
- `javax.swing.tree`:与`JTree`组件相关的类,用于展示和操作树形数据结构。 - `javax.swing.undo`:提供了撤销/重做功能的支持,常用于文本编辑组件。 Swing的版面结构是构建GUI布局的关键。它允许开发者通过...