package 树组件;

import java.awt.Component;

public class Example9_12 {

public static void main(String args[]){

TreeWin win=new TreeWin();

win.setTitle("树组件");

}

}

package 树组件;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.tree.*;

public class TreeWin extends JFrame implements TreeSelectionListener,ActionListener{

JTree tree;

JTextArea showText;

TreeWin(){

setLayout(new FlowLayout());

DefaultMutableTreeNode root=new DefaultMutableTreeNode("商品");

DefaultMutableTreeNode nodeTV=new DefaultMutableTreeNode("电视机类");

DefaultMutableTreeNode nodePhone=new DefaultMutableTreeNode("手机类");

DefaultMutableTreeNode tv1=new DefaultMutableTreeNode(new Goods("长虹电视",5699));

DefaultMutableTreeNode tv2=new DefaultMutableTreeNode(new Goods("海尔电视",7832));

DefaultMutableTreeNode phone1=new DefaultMutableTreeNode(new Goods("诺基亚手机",7320));

DefaultMutableTreeNode phone2=new DefaultMutableTreeNode(new Goods("小米手机",7882));

DefaultMutableTreeNode phone3=new DefaultMutableTreeNode(new Goods("三星手机",7302));

root.add(nodeTV);

root.add(nodePhone);

nodeTV.add(tv1);

nodeTV.add(tv2);

nodePhone.add(phone1);

nodePhone.add(phone2);

nodePhone.add(phone3);

tree=new JTree(root);

tree.addTreeSelectionListener(this);

showText=new JTextArea();

setLayout(new GridLayout(1,3));

add(new JScrollPane(tree));

add(new JScrollPane(showText));

JButton button=new JButton("确定");

add(button);

button.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

setBounds(80,80,300,300);

validate();

}

public void actionPerformed(ActionEvent e){

int n=JOptionPane.showConfirmDialog(this, "确定要关闭吗?","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);

if(n==JOptionPane.YES_OPTION){

dispose();

}

}

public void valueChanged(TreeSelectionEvent e){

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();

if(node.isLeaf()){

Goods s=(Goods)node.getUserObject();

showText.append(s.name+","+s.price+"元\n");

}

else

showText.setText(null);

}

}

package 树组件;

public class Goods {

String name;

double price;

Goods(String n,double s){

name=n;

price=s;

}

public String toString(){

return name;

}

}

这是运行结果:

树组件说明书java_java树组件相关推荐

  1. Storm中Numbus,zookeeper,Supervisor,worker作用,Storm任务提交过程,Storm组件本地目录树,Storm zookeeper目录树

    1.Storm 任务提交的过程 2.Storm组件本地目录树 3.Storm zookeeper目录树

  2. JS组件系列——Bootstrap 树控件使用经验分享 - 懒得安分 - 博客园

    前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...

  3. vue 递归组件多级_Vue递归组件实现树形结构菜单

    Tree 组件是递归类组件的典型代表,它常用于文件夹.组织架构.生物分类.国家地区等等,世间万物的大多数结构都是树形结构.使用树控件可以完整展现其中的层级关系,并具有展开收起选择等交互功能. 如图所示 ...

  4. react 组件连动效果_React组件开发中常见的陷阱

    React作为使用最广泛Web前端开发之一,在Web开发领域越来成熟和稳固.其新版本发布的Hook API/concept使得组件更加便捷易用.虽然如此,React开发中仍然有很多的陷阱值得每一位Re ...

  5. 微信小程序组件通信入门及组件生命周期函数

    组件生命周期函数链接地址:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/lifetimes.h ...

  6. React简介、虚拟DOM、Diff算法、创建React项目、JSX语法、组件、组件声明方式、组件传值props和state、组件的生命周期

    React简介: 前面只是简单介绍移动APP开发,后面还会继续深入介绍移动app开发:其中想要用ReactNative开发出更出色的应用,那么就得学好React,下面将介绍React: React 是 ...

  7. 组件和高阶组件区别_为什么要对高阶组件使用代码拆分

    组件和高阶组件区别 by Nitish Phanse 由Nitish Phanse 为什么要对高阶组件使用代码拆分 (Why you should use code splitting with hi ...

  8. react 中组件隐藏显示_React组件开发中常见的陷阱及解决

    React作为使用最广泛Web前端开发之一,在Web开发领域越来成熟和稳固.其新版本发布的Hook API/concept使得组件更加便捷易用.虽然如此,React开发中仍然有很多的陷阱值得每一位Re ...

  9. render注册一个链接组件_vue: 单文件组件 render函数

    使用vue-cli创建的vue项目,如何在这种项目中使用组建? 首先创建项目.启动项目 我们再来了解一下目录结构,src文件夹是写逻辑代码的地方,public是最终渲染到浏览器的地方. 在public ...

最新文章

  1. java中string与byte[]的转换
  2. IE自动在后台运行,不知道是什么病毒?
  3. Windows建立目录软连接
  4. 单链表中删除指定值的节点
  5. 呢篇唔系教程 -- 记录自己第一次Android刷机
  6. ARM 之十一__weak 和 __attribute__((weak)) 关键字的使用
  7. 认识控制台-控制台句柄、附着到控制台、关闭控制台
  8. 为什么公司宁愿花25K重新招人,也不愿花20K留住老员工?
  9. 一台微型计算机_Linux的上百万行代码,一台新的微型计算机以及Google和Microsoft的更多产品
  10. Java中使用各种方式实现网页跳转
  11. STM32F103RCT6移植到STM32F103C8T6注意事项
  12. 在树莓派上安装配置远程摄像头监控motion
  13. fw_setenv的配置及使用
  14. appinventor mysql_利用AppInventor实现登录功能(完整版).docx
  15. 【译文】MapReduce:大型集群上的简化数据处理
  16. husky + lint-staged 使用备忘
  17. Python计算机视觉——图像检索与识别
  18. steam服务器维修,Steam 停机及服务器维护 - Steam Support
  19. 2021 Graphql Asia 会议发言人招募!(内附CFP表格)
  20. Ubuntu16.04下利用EasyDarwin搭建RTSP流媒体服务器

热门文章

  1. 非常量引用的初始值必须为左值解决方式
  2. 未识别的网络无法连接Internet解决方法
  3. Php如何发出请求,PHP中如何发送HTTP请求?
  4. weblogic部署静态资源文件html,如何使用Spring的mvc提供静态资源:WebLogic上的资源?...
  5. 让数据为你带来无限可能性
  6. Machine Learning:如何选择机器学习算法?
  7. rpm包安装和卸载,rpm查询,yum工具详解,yum仓库搭建
  8. Maven系列三Maven内置变量
  9. Android菜单详解(一)——理解android中的Menu
  10. corosync+pacemaker实现高可用(HA)集群(二)