| | |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | import java.awt.*; |
| | | import java.util.Arrays; |
| | | import java.util.Vector; |
| | | |
| | | |
| | | public class ComplexTable extends JTable { |
| | | public final static Object mergeCellX = "mergeCellX";//标识单元格是否要被横向合并 |
| | | public final static Object mergeCellY = "mergeCellY";//标识单元格是否要被纵向合并 |
| | | |
| | | public ComplexTable(Object[][] headerRows, Object[][] body) { |
| | | super(new DefaultTableModel(body, headerRows[0])); |
| | | public ComplexTable(Object[][] headerRows, Object[][] body,Integer width) { |
| | | super(new DefaultTableModel(body, headerRows[1])); |
| | | // super( 0 , headerRows[0].length ); |
| | | this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | this.setEnabled(false); |
| | | |
| | | //设置table内容居中 |
| | | DefaultTableCellRenderer tcr = new DefaultTableCellRenderer(); |
| | | tcr.setHorizontalAlignment(JLabel.CENTER);// 这句和上句作用一样 |
| | | this.setDefaultRenderer(Object.class, tcr); |
| | | for (int i = 0; i < 7; i++) { |
| | | this.getColumnModel().getColumn(i).setPreferredWidth(171); |
| | | for (int i = 0; i < headerRows[1].length; i++) { |
| | | this.getColumnModel().getColumn(i).setPreferredWidth(width); |
| | | } |
| | | this.setRowHeight(25); |
| | | //设置表头UI |
| | | this.getTableHeader().setUI(new ComplexHeaderUI(headerRows, this)); |
| | | this.setUI(new ComplexTableUI(body, this)); |
| | | } |
| | | |
| | | } |
| | | |