java如何刷新jtable没有表头,java JTable刷新有关问题

Java codeimport java.util.LinkedList;

import java.util.List;

import javax.swing.SwingUtilities;

import javax.swing.table.AbstractTableModel;

/**

*

* @date 17/10/2012

*/

public class SizeFixedStackTableModel extends AbstractTableModel {

public static interface RecordRenderer {

int getColumnCount();

/**

*

* @param record

* @param column

* @return

* @throws IndexOutOfBoundsException when column is not valid

* {@code ( column < 0 || column >= getColumnCount() )}

*/

Object getValueAt(R record, int column);

}

private final RecordRenderer super R> recordRenderer;

private volatile int size;

private List records;

public SizeFixedStackTableModel(RecordRenderer super R> recordRenderer,

int size) {

if( recordRenderer == null )

throw new NullPointerException();

if( size < 0 )

throw new IllegalArgumentException();

this.recordRenderer = recordRenderer;

this.size = size;

this.records = new LinkedList();

}

@Override

public int getRowCount() {

assert SwingUtilities.isEventDispatchThread();

return Math.min(size, records.size());

}

@Override

public int getColumnCount() {

assert SwingUtilities.isEventDispatchThread();

return recordRenderer.getColumnCount();

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

assert SwingUtilities.isEventDispatchThread();

// potentially throws IndexOutOfBoundsException

R record = records.get(rowIndex);

return recordRenderer.getValueAt(record, columnIndex);

}

public void setSize(int size) {

if( size < 0 )

throw new IllegalArgumentException("Invalid table model size: " + size);

if( this.size == size )

return;

this.size = size;

fireTableDataChanged();

}

public void insert(final R record) {

if( SwingUtilities.isEventDispatchThread() ) {

records.add(0, record);

fireTableDataChanged();

}

else {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

insert(record);

}

});

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值