Java使用自定义的tableModel,设置可编辑方式 (五)

2014-11-24 08:41:49 · 作者: · 浏览: 8

private static final long serialVersionUID = 3935656415101599023L;

@Override
public int getRowCount() {
// TODO Auto-generated method stub
return tableva lueV.size();
}

@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return fixedColumn;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return tableva lueV.get(rowIndex).get(columnIndex);
}

@Override
public String getColumnName(int columnIndex) {
return columnNameV.get(columnIndex);
}
}

private class FloatingColumnTableModel extends AbstractTableModel {
/**
*
*/
private static final long serialVersionUID = -2481466672947191281L;

@Override
public boolean isCellEditable(int row, int column) {
return true;
}

@Override
public int getRowCount() {
return tableva lueV.size();
}

@Override
public int getColumnCount() {
return columnNameV.size() - fixedColumn;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return tableva lueV.get(rowIndex).get(columnIndex + fixedColumn);
}

@Override
public String getColumnName(int columnIndex) {
return columnNameV.get(columnIndex + fixedColumn);
}
}

private class MListSelectionListener implements ListSelectionListener {
boolean isFixedColumnTable = true;

public MListSelectionListener(boolean isFixedColumnTable) {
this.isFixedColumnTable = isFixedColumnTable;
}

@Override
public void valueChanged(ListSelectionEvent e) {
// TODO Auto-generated method stub
if (isFixedColumnTable) {
int row = fixedColumnTable.getSelectedRow();
floatingColumnTable.setRowSelectionInterval(row, row);
} else {
int row = floatingColumnTable.getSelectedRow();
fixedColumnTable.setRowSelectionInterval(row, row);
}
}
}

public MFixedColumnTable_Modified(Vector columnNameV,
Vector> tableva lueV, int fixedColumn) {
super();
setLayout(new BorderLayout());
this.columnNameV = columnNameV;
this.tableva lueV = tableva lueV;
this.fixedColumn = fixedColumn;
// create fixedColumnTable
fixedColumnTableModel = new FixedColumnTableModel();
fixedColumnTable = new JTable(fixedColumnTableModel);
ListSelectionModel fixed = fixedColumnTable.getSelectionModel();
fixed.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
fixed.addListSelectionListener(new MListSelectionListener(true));
// create floatingColumnTable
floatingColumnTableModel = new FloatingColumnTableModel();
floatingColumnTable = new JTable(floatingColumnTableModel);
floatingColumnTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
ListSelectionModel floating = floatingColumnTable.getSelectionModel();
floating.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
floating.addListSelectionListener(new MListSelectionListener(false));
// create scrollPane
JScrollPane scrollPane = new JScrollPane();
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,
fixedColumnTable.getTableHeader());
JViewport viewport = new JViewport();
viewport.setView(fixedColumnTable);
viewport.setPreferredSize(fixedColumnTable.getPreferredSize());
scrollPane.setRowHeaderView(viewport); // viewport 视口
scrollPane.setViewportView(f