用这个监听就可以做到立即更新,一但往表里加上东西就可以看到^_^
import javax.swing.*;
import javax.swing.event.*;
public class MyTableModelListener implements TableModelListener {
JTable table; // It is necessary to keep the table since it is not possible
// to determine the table from the event's source
MyTableModelListener(JTable table) {
this.table = table;
} public void tableChanged(TableModelEvent e) {
int firstRow = e.getFirstRow();
int lastRow = e.getLastRow();
int mColIndex = e.getColumn(); switch (e.getType()) {
case TableModelEvent.INSERT:
// The inserted rows are in the range [firstRow, lastRow]
for (int r=firstRow; r<=lastRow; r++) {
// Row r was inserted
}
break;
case TableModelEvent.UPDATE:
if (firstRow == TableModelEvent.HEADER_ROW) {
if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// A column was added
} else {
// Column mColIndex in header changed
}
} else {
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was changed if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// All columns in the range of rows have changed
} else {
// Column mColIndex changed
}
}
}
break;
case TableModelEvent.DELETE:
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was deleted
}
break;
}
}
}用的时候private MyTableModelListener chang=new MyTableModelListener(jTable1);
import javax.swing.*;
import javax.swing.event.*;
public class MyTableModelListener implements TableModelListener {
JTable table; // It is necessary to keep the table since it is not possible
// to determine the table from the event's source
MyTableModelListener(JTable table) {
this.table = table;
} public void tableChanged(TableModelEvent e) {
int firstRow = e.getFirstRow();
int lastRow = e.getLastRow();
int mColIndex = e.getColumn(); switch (e.getType()) {
case TableModelEvent.INSERT:
// The inserted rows are in the range [firstRow, lastRow]
for (int r=firstRow; r<=lastRow; r++) {
// Row r was inserted
}
break;
case TableModelEvent.UPDATE:
if (firstRow == TableModelEvent.HEADER_ROW) {
if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// A column was added
} else {
// Column mColIndex in header changed
}
} else {
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was changed if (mColIndex == TableModelEvent.ALL_COLUMNS) {
// All columns in the range of rows have changed
} else {
// Column mColIndex changed
}
}
}
break;
case TableModelEvent.DELETE:
// The rows in the range [firstRow, lastRow] changed
for (int r=firstRow; r<=lastRow; r++) {
// Row r was deleted
}
break;
}
}
}用的时候private MyTableModelListener chang=new MyTableModelListener(jTable1);
解决方案 »
- 怎样把写的学生信息管理系统和slq sever 连接起来? 代码和数据库都写好了,请高手帮我修改!
- 大家帮忙看看方法该怎样定义啊
- 各位老大好,小弟请教个问题,十分感谢~
- 急啊,马上给分!在Struts+Spring+Hibernate下,怎么从本地读一个图片存在服务器的 BLOB字段里?(二进制?)
- 请问 这个类中实例化的对象a 和b能够 转换吗?如果能请给出方法谢谢!
- 我自己写的一个JTableComboBox,弹出面板里的table不能响应鼠标事件,请高手赐教!!
- 谁有张孝祥的java全套光盘阿~~
- 《Effective Java》侯捷译下载
- 我写的播放声音的代码,但是可以读到文件 不能播放,请高手帮忙调试
- 需要VisualAge for Java的企业版?
- jakarta-poi无法读取已存在数据的Excel文件的数据!!!!!
- 请教关于byte的问题
我的做法试 private class DataModel extends AbstractTableModel 。这样似乎要简单许多~~因为AbstractTableModel已经为我们实现了很多功能了,可以大幅度提高偶们的生产力(这句是广告,呵呵~~)~~
其实也是在csdn问过类似的问题牛人告诉我的
能不能说得再详细一点~最好给出源码~
{
....
myTableModel mtm = new myTableModel(..);
jTable.setModel(mtm); ....
myTableModel tm = (myTableModel)jTable.getModel();
tm.changeData(..);}class myTableModel extends AbstractTableModel {
public void changeData(...) {
//修改数据
fireTableDataChanged();
}}