JTable实现冻结列的简单实现示例,参考网上示例:https://www.crionics.com/public/swing_examples/JTableExamples1.html
实现思路使用两个JTable来实现的冻结部分和非冻结部分
package com.wuqi.FixedTable;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.AbstractTableModel;
/**
* 锁定列
* 使用两个表来实现锁定列的功能
* @author wuqi
*
*/
public class FixedColumnTable extends JPanel {
private static final long serialVersionUID = -7028815661978466642L;
private Object[][] data; //数据
private Object[] column; //列标题
private JTable fixedTable,table;
private int columnFixedIndex; //冻结列的索引
private boolean isNeedFixed=true; //是否需要冻结
private JScrollPane scroll;
private JViewport viewport;
public FixedColumnTable(Object[][] _data,Object[] _column,int _columnFixedIndex){
super();
this.data=_data;
this.column=_column;
//根据冻结列判断是否需要冻结表格
if(_columnFixedIndex<=0){
columnFixedIndex=0;
isNeedFixed=false;
}else if(_columnFixedIndex>=_column.length){
columnFixedIndex=0;
isNeedFixed=false;
}else{
columnFixedInde