<java><JTable>使用AbstractTableModel & JTable实现号码的分布图(初稿)
来源:互联网 发布:大数据 项目需求分析 编辑:程序博客网 时间:2024/05/16 10:18
一直没有写blog的习惯,认为太浪费时间啦。总觉得自己有多多牛x,到最后,当初还模模糊糊能理解记得的,都已不能在脑海里觅得踪影。终于狠下决心,不管java也好,C语言也好,驱动也好,Linux也好。咱一锅汤端了吧。
如题,最近学习Java,算算差不多学了有两个星期了吧。也能写写基本的比如Hello World之类的程序了,,哈哈哈。不扯淡了,进入正题。
先将成果呈上,后面自己翻看也能一目了然是关于什么的。
咳咳,请忽略掉下面布局的问题吧。。。。
在这个程序中我for循环三次用来生成数据(FirstName, LastName, Color, Sex, Year),,然后将它们显示到窗口的某一个Table中。边学边写,知道了JTable,知道了TableModel,知道了AbstractTableModel。但是使用起来却是不得要领,其实想起来自己也有点不会走就想跑的架势,管他呢,边学边写不是吗,写成了,自然就会了,会多了自然就懂了。在写这个Table的过程中,Table跟Model都是比较简单的,插入数据的时候遇到一点困难,翻看API手册,百度,谷歌。能用的方法都用上了。就是想不通(谁让人家是菜鸟呢。)。最终不断的尝试、发现,总算知道了如何使用。
简单的说:AbstractTableModel需要实现三个方法:
public int getRowCount();public int getColumnCount();public Object getValueAt(int row, int column);
这三个方法的意思就不解释了。常规演示代码里面使用时在model,都是在model里面就初始化好数据,然后建立Table的时候直接添加进去了。这当然不是我想要的,查看Oracle的demo代码:SwingSet3后发现,getValueAt这个方法便是用来插入数据用的,个人理解很简单:插入数据后,通知侦听器,然后getValueAt,最终显示到表中(如有误请指正,谢谢!)。
于是从头至尾的步骤为:
1、创建Model类:
class MyTableModel extends AbstractTableModel{ private String[] columnNames_2 = { "First Name", "Last Name", "Color", "Sex", "# of years" };
private ArrayList<DataInfo> dataInfo_2 = new ArrayList<DataInfo>(); // 插入数据集2、创建表:
MyTableModel model = new MyTableModel(); sorter = new TableRowSorter<MyTableModel>(model); table = new JTable(model); table.setRowSorter(sorter);
3、循环三次生成数据,并插入数据:
for(int i=0; i<3; i++) { DataInfo data = new DataInfo(); data.SetFirstName("Jinze"+i); data.SetLastName("Zhang"+i); data.SetColor(Color.yellow); data.SetSex('f'); data.SetYear(12+i); model.setValueAt(data); // 自写方法,实现内容见下面代码 }In MyTableModel:
public void setValueAt(DataInfo data) { dataInfo_2.add(data); }
// 看到没,这里就是我们想要的GetValueAt方法:
@Override public Object getValueAt(int rowIndex, int columnIndex) { DataInfo dataInfo = dataInfo_2.get(rowIndex); if(columnIndex == 0) { return dataInfo.GetFirstName(); } else if(columnIndex == 1) { return dataInfo.GetLastName(); } else if(columnIndex == 2) { return dataInfo.GetColor(); } else if(columnIndex == 3) { return dataInfo.GetSex(); } else if(columnIndex == 4) { return dataInfo.GetYear(); } return null; }大概步骤如上,最终看起来是挺简单的,只是初学者的过程是在太折磨人,不把它写出来虐它几百遍,心里不甘心啊。OK,本章结束。
0 0
- <java><JTable>使用AbstractTableModel & JTable实现号码的分布图(初稿)
- <java><JTable>使用AbstractTableModel实现更新、删除、插入数据
- JTable适配(AbstractTableModel)
- JTable中AbstractTableModel的使用(可以实现直接修改数据,下拉栏,图片等)
- 使用AbstractTableModel構造JTable的一個例子
- 浅谈Java.swing.JTable.TableModel和AbstractTableModel
- JAVA JTable的使用
- TableModel.JTable和AbstractTableModel
- java中JTable的使用
- swing JTable学习(三):AbstractTableModel
- Java Swing JTable 表格【5:表格模型AbstractTableModel】
- JAVA SWING JTable使用
- java JTable使用示例
- java swing中对于JTable的使用(一)
- java gui Jtable的使用(未更新完毕)
- JTable的使用
- JTable的使用
- JTable的基本使用
- 软件开发文档分类以及和软件生命周期的关系
- 子墨对酒《三国杀》里论模式(一)工厂模式
- redis备忘
- 电脑内存常见问题处理方法
- 我该如何责备你,我的程序员
- <java><JTable>使用AbstractTableModel & JTable实现号码的分布图(初稿)
- shell 笔记2
- 软解码节点的创建和调用
- RenderScript简介
- linux fcitx 搜狗输入法
- 电脑内存常见问题处理方法
- Android读写文件
- Linux内核中ioremap映射的透彻理解
- 倾听社区的声音,但别被他们牵着鼻子走