你的意思是不是读取完就刷新?那就在你的读取数据的程序里加一个fireTableDataChanged不就行了吗?
解决方案 »
- structs中加入javascript脚本遇到的一些问题
- 求java项目
- hibernate Save问题.
- hibernate中1:N关系,如何设计主,外键的字段类型?
- myeclipse4+hibernate2,hibernate mapping出现问题
- 如何定义一个不确定类型的变量
- JACE哪有下载
- 有能自动生成标签代码的工具么,就像DW那样生成HTML
- 请教hibernate中如下的hsql返回的List中具体的对象类型是什么呢?(在线等.. 谢谢)
- 把所有的分都獻出,望有高人幫忙解決一下這個問題--->>>mail程序發送問題
- 一个struts的简单问题
- 在windows平台下,请问JAVA中有方便的调用win32下的API例如USER32.dll的功能吗?
* 创建日期 2004-8-18
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package gui;
import java.util.Vector;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
/**
* @author nijiang
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class JTable extends javax.swing.JTable
{
/**
*
*/
public JTable()
{
super();
}
/**
* @param arg0
* @param arg1
*/
public JTable(int arg0, int arg1)
{
super(arg0, arg1);
// TODO 自动生成构造函数存根
}
/**
* @param arg0
*/
public JTable(TableModel arg0)
{
super(arg0);
// TODO 自动生成构造函数存根
}
/**
* @param arg0
* @param arg1
*/
public JTable(Object[][] arg0, Object[] arg1)
{
super(arg0, arg1);
// TODO 自动生成构造函数存根
}
/**
* @param arg0
* @param arg1
*/
public JTable(Vector arg0, Vector arg1)
{
super(arg0, arg1);
// TODO 自动生成构造函数存根
}
/**
* @param arg0
* @param arg1
*/
public JTable(TableModel arg0, TableColumnModel arg1)
{
super(arg0, arg1);
// TODO 自动生成构造函数存根
}
/**
* @param arg0
* @param arg1
* @param arg2
*/
public JTable(
TableModel arg0,
TableColumnModel arg1,
ListSelectionModel arg2)
{
super(arg0, arg1, arg2);
}
public WbTableModel getDefaultModel()
{
TableModel tm = super.getModel();
return (WbTableModel) tm;
}
/* (非 Javadoc)
* @see javax.swing.JTable#setModel(javax.swing.table.TableModel)
*/
public void setDefaultModel(WbTableModel arg0)
{
// TODO 自动生成方法存根
super.setModel(arg0);
this.getColumn("书名").setMinWidth(200);
this.updateUI();
}
//将表格的值传给模式,并刷新UI
public void setVector(Vector ve)
{
getDefaultModel().setTableValues(ve);
this.updateUI();
}
//从表格中,将值传给模式
public Vector getVector()
{
return getDefaultModel().getTableValues();
}
}然后是tableModel/*
* 创建日期 2004-8-14
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package gui;
import java.util.Vector;
import javax.swing.event.TableModelListener;
/**
* @author goodghost
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class WbTableModel implements javax.swing.table.TableModel
{
String tableHeader[]; //表头
Vector tableValues= null; //表值,由类的对象完全转换过来的,
/**
*
*/
public WbTableModel(String[] tableHeader, Vector tableValues)
{
super();
this.tableHeader= tableHeader;
this.tableValues= tableValues;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#getColumnCount()
*/
public int getColumnCount()
{
return tableHeader.length;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#getRowCount()
*/
public int getRowCount()
{
if (tableValues != null)
{
return getTableValues().size();
} else
return 0;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#isCellEditable(int, int)
*/
public boolean isCellEditable(int arg0, int arg1)
{
return false;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#getColumnClass(int)
*/
public Class getColumnClass(int arg0)
{
return super.getClass();
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
public Object getValueAt(int arg0, int arg1)
{
if (getTableValues() != null)
{
String aaa[]= this.getTableValues().get(arg0).toString().split("__");
return aaa[arg1];
} else
return null;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#getColumnName(int)
*/
public String getColumnName(int arg0)
{
return tableHeader[arg0];
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#addTableModelListener(javax.swing.event.TableModelListener)
*/
public void addTableModelListener(TableModelListener arg0)
{
// TODO 自动生成方法存根
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#removeTableModelListener(javax.swing.event.TableModelListener)
*/
public void removeTableModelListener(TableModelListener arg0)
{
// TODO 自动生成方法存根
}
/**
* @return
*/
public Vector getTableValues()
{
if (tableValues == null)
{
tableValues= new Vector();
}
return tableValues;
}
/**
* @param vector
*/
public void setTableValues(Vector object)
{
tableValues= object;
}
/* (非 Javadoc)
* @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
*/
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
{
// TODO 自动生成方法存根
}
}
最后是TableHeader/*
* 创建日期 2004-8-16
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package gui;
/**
* @author nijiang
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class TableHeader
{
public static final String[] getUserHeader()
{
String[] header = {
};
return header;
}
public static final String[] getBookHeader()
{
String[] header = { "书名","ISBN", "作者", "出版社", "出版时间", "版次", "定价" };
return header;
}
public static final String[] getOrderHeader()
{
String[] header = { "书名","ISBN", "作者","出版社", "出版时间", "定价", "本数" };
return header;
}
public static final String[] getSumOrderHeader()
{
String[] header = { "书名","ISBN", "作者", "出版社", "出版时间", "定价", "本数" };
return header;
}
}
然后写一个抽象类(一个view)继承Janel和实现ObServer接口
放JTable的类继承这个抽象类
最后用一个控制类来刷新Model来更新你的JTable
是不是用removeColumn(TableColumn aColumn) ,但怎么不行呀?