树组件首先要new一个JTree,再加结点,然后添加到 JScrollPane

JTree tree1=new JTree();
//.......添加节点
add(new ScrollPane(tree1)

添加节点

DefaultMutableTreeNode root=new DefaultMutableTreeNode("dongxi")//后面的是备注
DefaultMutableTreeNode root=new DefaultMutableTreeNode(new Good("aa",11));//还可以作为叶子new 对象

添加监视器(由树来添加

addTreeSelectionListener(TreeSelectionListener listener)

TreeSelectionListener接口的方法

public void valueChanged(TreeSelectionEvent e)

在上面的接口方法中,返回树的结点,再返回结点中的对象

DefaultMutableTreeNode node1=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//只有树Tree才能用的方法
if(node.isLeaf())//判断是否叶子节点
Obeject a=(Obeject)node.getUserObject()//返回叶子里面的对象

完整的测试代码

public class test{

    public static void main(String args[]){
MyWin window1=new MyWin();
window1.setBounds(12,12,400,300);
}
} class MyWin extends JFrame implements TreeSelectionListener{
JTextField text1;
JButton button1,button2;
JTextArea textArea1,textArea2;
JLabel label1;
JTree tree1;
MyWin(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
DefaultMutableTreeNode root=new DefaultMutableTreeNode("Goods");
DefaultMutableTreeNode nodeTV=new DefaultMutableTreeNode("TV");
DefaultMutableTreeNode nodePhone=new DefaultMutableTreeNode("phone");
DefaultMutableTreeNode tv1=new DefaultMutableTreeNode(new Goods("huangTV",11));
DefaultMutableTreeNode tv2=new DefaultMutableTreeNode(new Goods("yuTV",21));
DefaultMutableTreeNode phone1=new DefaultMutableTreeNode(new Goods("ga",31));
DefaultMutableTreeNode phone2=new DefaultMutableTreeNode(new Goods("bing",11));
root.add(nodeTV);
root.add(nodePhone);
nodeTV.add(tv1);
nodeTV.add(tv2);
nodePhone.add(phone1);
nodePhone.add(phone2);
tree1=new JTree(root);
tree1.addTreeSelectionListener(this);
setLayout(new GridLayout(1,2));
add(new JScrollPane(tree1));
textArea2=new JTextArea(15,15);
add(new JScrollPane(textArea2));
}
public void valueChanged(TreeSelectionEvent e){
DefaultMutableTreeNode a=(DefaultMutableTreeNode)tree1.getLastSelectedPathComponent();
if(a.isLeaf()){//是叶子节点?
Goods b=(Goods)a.getUserObject();
textArea2.append(b.name+": "+b.price+"\n");
}
else
textArea2.setText(null);
}
} class Goods{
String name;
double price;
Goods(String name,double price){
this.name=name;
this.price=price;
}
}

表格组件

Jtable默认的构造方法有7个,这里说常用的3个

JTable()
JTable(int a,int b)//几行几列
JTable(Object data[][],Object columnName[])//data为数据数组,columnName为列名数组

如果表格data[][]是 数字类型,可以用 Double.parseDouble 或者Integer.parseInt(s);

调用repaint来刷新表格

计算成绩代码测试

class MyWin extends JFrame implements ActionListener{
JTable table1;
JButton button1;
Object a[][];
Object name[]={"姓名","英语成绩","数学成绩","总成绩"};
MyWin(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
a=new Object[8][4];
for(int i=0;i<8;i++){
for(int j=0;j<4;j++){
if(j!=0)
a[i][j]=0;
else
a[i][j]="姓名";
}
}
button1=new JButton("click");
table1=new JTable(a,name);
Container con1=this.getContentPane();//获得一个容器,不用add
getContentPane().add(new JScrollPane(table1), BorderLayout.CENTER);
con1.add(new JLabel("update the data and click the button"),BorderLayout.NORTH);
con1.add(button1,BorderLayout.SOUTH);
button1.addActionListener(this);
// validate();//验证组件 }
public void actionPerformed(ActionEvent e) {
double sum=0;
boolean boo=true;
for(int i=0;i<8;i++){
sum=0;
for(int j=1;j<3;j++){
try{sum+=Double.parseDouble(a[i][j].toString());
}
catch(Exception ee){
boo=false;
table1.repaint();
}
}
if(boo==true){
a[i][3]=sum+"";//把他改为String
table1.repaint();
} }
} }

GUI树组件,表格的更多相关文章

  1. vuejs学习--递归组件(树型表格分享)

    前言 学习vue有一段时间了,最近使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件 组件在它的模板内可以递 ...

  2. Tree( 树) 组件[1]

    本节课重点了解 EasyUI 中 Tree(树)组件的使用方法, 这个组件依赖于 Draggable(拖动)和 Droppable(放置)组件. 一. 加载方式//class 加载方式<ul c ...

  3. 第二百二十六节,jQuery EasyUI,Tree(树)组件

    jQuery EasyUI,Tree(树)组件 本节课重点了解 EasyUI 中 Tree(树)组件的使用方法,这个组件依赖于 Draggable(拖 动)和 Droppable(放置)组件. 一.加 ...

  4. SPA项目开发之动态树+数据表格+分页

    SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...

  5. fsLayuiPlugin树+数据表格使用

    fsLayuiPlugin 是一个基于layui的快速开发插件,支持数据表格增删改查操作,提供通用的组件,通过配置html实现数据请求,减少前端js重复开发的工作. GitHub下载 码云下载 测试环 ...

  6. 『动善时』JMeter基础 — 32、JMeter察看结果树组件详解

    目录 1.察看结果树介绍 2.察看结果树界面详解 3.察看结果树的其他功能 (1)将数据写入文件中 (2)Search功能 (3)Scroll automatically选项 4.总结 1.察看结果树 ...

  7. jquery-treegrid树状表格的使用(.Net平台)

    上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一. ...

  8. 基于HTML5树组件延迟加载技术实现

    HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的 ...

  9. HT for Web的HTML5树组件延迟加载技术实现

    HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的 ...

随机推荐

  1. Java中String、StringBuffer、StringBuilder和toString的介绍

    作为一个刚接触java的小白,觉得字符串是个比较大的知识点,所以我把自己整理的一点笔记写成随笔,与园友一起分享,也请园友多多指出意见. 一.String类 1.字符串长度——length() Stri ...

  2. N个元素的集合划分成互斥的两个子集的数目

    前面这是寒假听马士兵老师讲的时候积累的语录.......... 1.php是水果刀,java是菜刀,刀法比较多,一年的和三年的区别很大. 2.nanicat连接mysql出现10061是服务没开启,却 ...

  3. 调用API函数,在窗口非客户区绘图(通过GetWindowDC获得整个窗口的DC,就可以随意作画了)

    http://hi.baidu.com/3582077/item/77d3c1ff60f9fa5ec9f33754 调用API函数,在窗口非客户区绘图 GDI+的Graphics类里有个FromHdc ...

  4. CSU 1559 订外卖

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82842#problem/E 订外卖 解题思路:定义两个数组,a[]表示满A,b ...

  5. Hadoop操作hdfs的命令【转载】

    本文系转载,原文地址被黑了,故无法贴出原始链接. Hadoop操作HDFS命令如下所示: hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出目录及文件信息 ...

  6. [置顶] 软件架构师的12项修炼_读书纪要_P3商务技能修炼

    本系列的文章是我读书后的个人纪要(书摘),仅代表个人观点.如想了解更多相关内容,请购买正版物,支持原书作者.对应的图书可以从我的个人图书列表里找寻:个人毕业后图书列表 本书勾勒了软件架构师的必备技能的 ...

  7. C# 读取 Access 数据库表的例子

    using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...

  8. Oracle常用脚本——通过RMAN配置RAC环境的分布式磁带机

    RAC的两个节点:node1,node2 RAC的两个实例:dbrac1,dbrac2 用户,密码的东西大家看看就懂了.设置成8能通道的. #!/bin/bash rman target / < ...

  9. 安装LVS安装LVS和配置LVS的工作比较繁杂

    安装LVS安装LVS和配置LVS的工作比较繁杂,读者在配置的过程中需要非常细心和耐心.在本节我们将对其进行详细地介绍.主要包括如下几个核心步骤:1.获取支持LVS的内核源代码如果读者需要使用LVS,需 ...

  10. win7 无线网络无法启动

    开始菜单-运行输入services.msc然后确定!找到WLAN Autoconfig这一项,启动此项服务,一切就OK了