java swing 中操作对象jtable 的方法 自定义对象jtable工具类
来源:互联网 发布:jq radio对象数组 编辑:程序博客网 时间:2024/05/22 10:24
此文原创,如有疑惑或改进 欢迎发送邮件到sheng24@vip.qq.com
http://download.csdn.net/detail/shengjocker/6395709
使用工具类:继承MyTableModel并传入对象类型即可
需要复写toString 方法 ,用于jtable显示
例如:
UserCfg 具有ID NAME属性 并有set get方法
第一步:继承MyTableModel
class UserModel extends MyTableModel<UserCfg> {
public UserModel(String[] title, boolean[] canEdit) {
super(title, canEdit);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return super.list.get(rowIndex).getId();
} else if (columnIndex == 1) {
return super.list.get(rowIndex).getName();
}
return null;
}
}
第二步:
往jtable传入定义的model对象即可
String[] titleUser = { "ID", "用户名" };
boolean[] canEditUser = new boolean[] { false, false};
UserModel userModel = new UserModel(titleUser, canEditUser);
userTable.setModel(userModel);
userScrollPane.setViewportView(userTable);
第三步:
操作UserModel来操作对象
userModel.add(userCfg);
userModel.get(1);
//工具类
package com.wincom.fsu.sheng.frame;/**
*
* @author HuaSheng
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.table.AbstractTableModel;
public abstract class MyTableModel<T> extends AbstractTableModel {
protected List<T> list;
private String[] title;
private boolean[] canEdit;
public MyTableModel(String[] title, boolean[] canEdit) {
list = new ArrayList<T>();
this.title = title;
this.canEdit = canEdit;
}
public MyTableModel(List<T> list, String[] title, boolean[] canEdit) {
this.list = list;
this.title = title;
this.canEdit = canEdit;
}
public void setAll(List<T> list){
this.list = list;
}
public void add(T t) {
list.add(t);
fireTableRowsInserted(list.size() - 1, list.size());
}
public void set(int i,T t){
list.set(i, t);
fireTableDataChanged();
}
public T get(int i) {
if (i >= 0 && i < list.size())
return list.get(i);
return null;
}
public List<T> getAll(){
return list;
}
public void addAll(List<T> tlist) {
list.addAll(tlist);
fireTableDataChanged();
}
public void remove(int i) {
if (i < list.size()) {
list.remove(i);
}
fireTableDataChanged();
}
public void removeAll() {
this.list.removeAll(this.list);
fireTableDataChanged();
}
public void refreshAll() {
fireTableDataChanged();
}
public void refreshSome(int first, int last) {
fireTableRowsUpdated(first, last);
}
public List<T> getDiffrent(List<T> list2) {
Map<T, Integer> map = new HashMap<T, Integer>(list.size()
+ list2.size());
List<T> diff = new ArrayList<T>();
List<T> maxList = list;
List<T> minList = list2;
if (list2.size() > list.size()) {
maxList = list2;
minList = list;
}
for (T t : maxList) {
map.put(t, 1);
}
for (T t : minList) {
Integer cc = map.get(t);
if (cc != null) {
map.put(t, ++cc);
continue;
}
map.put(t, 1);
}
for (Map.Entry<T, Integer> entry : map.entrySet()){
if (entry.getValue() == 1){
diff.add(entry.getKey());
}
}
return diff;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
@Override
public String getColumnName(int column) {
Map<Integer, String> map = new HashMap<Integer, String>();
for (int i = 0; i < title.length; i++) {
map.put(i, title[i]);
}
return map.get(column);
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return title.length;
}
}
- java swing 中操作对象jtable 的方法 自定义对象jtable工具类
- java swing 隐藏jtable 列的方法
- java swing 隐藏jtable 列的方法
- java swing Jtable 自定义 表格
- Java Swing中JTable的使用
- Java Swing中JTable的使用
- Java Swing中JTable的使用
- Swing的JTable常用方法
- swing中jtable的使用
- swing中jtable的使用
- Java 自定义的JTable
- swing jTable 自定义单元格
- Swing自定义JTable列的宽度
- java swing中对于JTable的使用(一)
- Java Swing中关于JTable的一些总结
- 【Java】可视化Swing中JTable控件绑定SQL数据源的两种方法
- Java Swing 在 JTable 中给 JCheckbox 绑定事件的方法
- Java Swing JTable
- DDR3 SPEC
- 网站建设如何才能为企业轻松开路
- RHEL下配置ftp服务器
- Android短信接收过程源码分析(原)
- c 结构体对齐(二)
- java swing 中操作对象jtable 的方法 自定义对象jtable工具类
- 绘图坐标系与视点坐标系
- 以太网、网络拓扑结构分类、双绞线的传输距离和分类
- 房地产企业(集团)网站建设方案
- 单链表逆转
- query二级菜单,鼠标经过显示二级分类,大类和小类都有链接
- phpcms v9笔记之模板制作案例
- 【转】malloc和realoc的区别
- CAS项目介绍(三)