java实现树状关系图

import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;

//森林状的关系图

public class JTreeDemo extends JFrame{
 JTextField jtfInfo; //文本域,用于显示点击的节点名称
 
 public JTreeDemo(){
  super("森林状的关系图");  //调用父类构造函数
  
  DefaultMutableTreeNode root = new DefaultMutableTreeNode("设置"); //生成根节点
  DefaultMutableTreeNode node1=new DefaultMutableTreeNode("常规"); //生成节点一
  node1.add(new DefaultMutableTreeNode("默认路径")); //增加新节点到节点一上
  node1.add(new DefaultMutableTreeNode("保存选项"));
  root.add(node1);  //增加节点一到根节点上
     root.add(new DefaultMutableTreeNode("界面"));   
     root.add(new DefaultMutableTreeNode("提示声音")); 
     root.add(new DefaultMutableTreeNode("打印"));   
     
  JTree tree = new JTree(root);  //得到JTree的实例   
        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //得到JTree的Renderer
     renderer.setLeafIcon(null); //设置叶子节点图标为空
     renderer.setClosedIcon(null);  //设置关闭节点的图标为空
     renderer.setOpenIcon(null); //设置打开节点的图标为空
     
     tree.addTreeSelectionListener(new TreeSelectionListener() {  //选择节点的事件处理
        public void valueChanged(TreeSelectionEvent evt) {
            TreePath path = evt.getPath();  //得到选择路径
            String info=path.getLastPathComponent().toString(); //得到选择的节点名称
   jtfInfo.setText(info);  //在文本域中显示名称
        }
     });

  JScrollPane jsp=new JScrollPane(tree); //增加JTree到滚动窗格
  jtfInfo=new JTextField(); //实例化文本域
  jtfInfo.setEditable(false); //文本域不可编辑
  getContentPane().add(jsp,BorderLayout.CENTER);  //增加组件到容器上
  getContentPane().add(jtfInfo,BorderLayout.SOUTH);
  
    
  setSize(250,200);  //设置窗口尺寸
  setVisible(true);  //设置窗口可视
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
 }
 
 public static void main(String[] args){
  new JTreeDemo();
 }
}

时间: 2024-09-20 10:51:46

java实现树状关系图的相关文章

java日志包桥接关系图

Java日志包桥接关系图 Log4j2官方图 Others to Log4j2 Log4j2 to SLF4j Spring Boot Log4j2 Starter日志包

[Java]Swing树状组件JTree

一 简单样式 TreeNodeDemo.java package com.sjf; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; public class T

java json 数据转换-JAVA中如何将数据组装为json树状结构的数据

问题描述 JAVA中如何将数据组装为json树状结构的数据 我从数据库中查出的数据保存到一个集合List中,集合中是存的区域类Area.区域类的字段和数据库中结果的字段一样.图1中是我的数据库查询结果,想转行为json格式的树状结构.例如省-市-县这样的结构.就是图2的效果 图1: 图2: 弄了一天了还没出现,我太菜了.请大家帮帮忙 解决方案 要么你就自己纯拼字符串,要么就直接用fastjson这类json工具类直接转.只要类结构和json结构能对应,可以直接转就可以了. 解决方案二: 你定义一

树状JAVA对象查询封装问题

问题描述 请问大家,如何查询树状JAVA对象,并封装到每个JAVA对象内?比如:PolicyDTO内有 coverageDTO[]数组属性coverageDTO内有 undwrtDTO[]数组属性整个层级关系为:PolicyDTO ---coverageDTO-------undwrtDTO表结构层级关系与对象一致如何查询才能更有效地查出数据并封装到一个PolicyDTO内呢,并且能够保证PolicyDTO内的数组数据也都存在?在Hibernate中配置的对象有级联查询的方式,比如我query得

php无限分类, 支持输出树状图

<?php /** * 通用的树型类,可以生成任何树型结构 */ class tree { /** * 生成树型结构所需要的2维数组 * @var array */ var $arr = array(); /** * 生成树型结构所需修饰符号,可以换成图片 * @var array */ var $icon = array('│','├','└'); /** * @access private */ var $ret = ''; /** * 构造函数,初始化类 * @param array 2维

在word中如何画{ 一个大的根引出树状图

问题:在word中如何画{ 一个大的根引出树状图? 解答:点击绘图工具栏上的自行图形----基本形状,在基本形状里点击{ ,然后在文档中画出{.

D3JS画出的树状图怎么设置在浏览器中的位置?

问题描述 D3JS画出的树状图怎么设置在浏览器中的位置? 我用D3JS画了一个树状图,但是他的位置一直靠左边屏幕,我想让他显示在浏览器 的中间,请问我应该设置什么参数?

代码- 做js 树状图从文本中读取数据

问题描述 做js 树状图从文本中读取数据 求高手发个参考代码, 在线等,急!!! 解决方案 手里没有,你看下解析xml的方式.无非就是循环根节点,根据根节点循环子节点. 要学会百度

java web-java 画url之间的关系图

问题描述 java 画url之间的关系图 用java jdk1.8,以wwww.jxufe.cn的域名为例,分析该域名下(超出该域名的网页忽略)所有网页的静态链接关系,并运用图形的方式展现关系. 有可以提供的思路么?我想问问有什么开源框架来画各种url之间的关系图呢?谢谢大家 解决方案 无非就是抓取页面,正则表达式提取链接,然后递归抓取,放在一个图的数据结构中. 在一个2d平面上画出所有节点,并且把他们之间有关系的用直线连起来. 当然,要考虑图的美观,需要额外的算法. 解决方案二: 去学学数据挖