62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.*;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
import javax.swing.table.*;
public class ResultDisplayTable
{
protected MainFrame mainFrame;
private int rowNum;
private int i,j;
private int colNum=0;
private int[][] cellData;
private String[] columnNames;
public ResultDisplayTable(MainFrame mainFrame,int rowNum)
{
this.mainFrame=mainFrame;
this.rowNum=rowNum;
this.colNum=this.rowNum+1;
this.cellData = new int[this.rowNum][this.colNum];
this.columnNames = new String[this.colNum];
this.Table();
}
public ResultDisplayTable(MainFrame mainFrame,int rowNum,int[][] cellData)
{
this.mainFrame=mainFrame;
this.rowNum=rowNum;
this.colNum=this.rowNum+1;
this.cellData = new int[this.rowNum][this.colNum];
this.columnNames = new String[this.colNum];
this.cellData = cellData;
this.Table();
}
private JTable mainTable;
private JTable fixedTable;
private void Table()
{
for(i=0;i<this.rowNum;i++)
{
this.cellData[i][0]=i+1;
}
this.columnNames[0]="#";
for (j = 1; j < this.columnNames.length; j++)
{
this.columnNames[j] = String.valueOf(j);
}
TableModel fixedColumnModel = new DefaultTableModel()
{
public int getColumnCount()
{
return 1;
}
public String getColumnName(int column)
{
return columnNames[column];
}
public int getRowCount()
{
return cellData.length;
}
public Object getValueAt(int row, int column)
{
return cellData[row][column];
}
};
TableModel mainModel = new DefaultTableModel()
{
public int getColumnCount()
{
return columnNames.length - 1;
}
public String getColumnName(int column)
{
return columnNames[column + 1];
}
public int getRowCount()
{
return cellData.length;
}
public Object getValueAt(int row, int column)
{
return cellData[row][column + 1];
}
};
fixedTable = new JTable(fixedColumnModel);
fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
fixedTable.setRowHeight(30);
fixedTable.getColumnModel().getColumn(0).setPreferredWidth(30);
DefaultTableCellRenderer dtc=new DefaultTableCellRenderer();
dtc.setBackground(new Color(207,245,254));
fixedTable.getColumnModel().getColumn(0).setCellRenderer(dtc);
mainTable = new JTable(mainModel);
mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
ListSelectionModel model = fixedTable.getSelectionModel();
mainTable.setSelectionModel(model);
mainTable.setRowHeight(30);
mainTable.getTableHeader().setFont(new Font("Arial",Font.PLAIN,18));
mainTable.getTableHeader().setBackground(new Color(207,245,254));
for(j = 0; j < this.columnNames.length-1; j++)
{
mainTable.getColumnModel().getColumn(j).setPreferredWidth(35);
}
for(i=0;i<this.rowNum;i++)
{
mainTable. getCellEditor(i,0).getTableCellEditorComponent(fixedTable,i+1,false,i,0).setFont
(new Font("Arial",Font.PLAIN,18));
}
JScrollPane scrollPane = new JScrollPane(mainTable);
Dimension fixedSize = fixedTable.getPreferredSize();
JViewport viewport = new JViewport();
viewport.setView(fixedTable);
viewport.setPreferredSize(fixedSize);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable.getTableHeader());
scrollPane.setRowHeaderView(viewport);
this.fixedTable.repaint();
this.fixedTable.updateUI();
this.mainTable.repaint();
this.mainTable.updateUI();
this.mainFrame.add(scrollPane);
}
}