表格模型

来源:互联网 发布:直播虚拟视频软件 编辑:程序博客网 时间:2024/05/21 21:33
public class Example03 extends JFrame{public static void main(String[] args) {Example03 frame=new Example03();frame.setVisible(true);}public Example03(){super();setTitle("定义表格");setBounds(100,100,500,375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane=new JScrollPane();//定义滚动条面板getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames={"A","B","C","D","E","F","G"};Vector columnNameV=new Vector<>();//定义数据列的向量for(int column=0;column<columnNames.length;column++){columnNameV.add(columnNames[column]);}Vector tableValueV=new Vector<>();//定义数据向量for(int row=1;row<21;row++){Vector rowV=new Vector();//行for(int column=0;column<columnNames.length;column++){rowV.add(columnNames[column]);}tableValueV.add(rowV);}JTable table=new MTable(tableValueV,columnNameV);//将数据和列加入表格table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//关闭表格列的自动调整功能table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置为单选模式table.setSelectionBackground(Color.YELLOW);//设置背景颜色为黄色table.setSelectionForeground(Color.RED);//设置前景色及文字颜色table.setRowHeight(30);//设置行高scrollPane.setViewportView(table);//将表格放在滚动条面板}public class MTable extends JTable{//实现自己的表格类public MTable(Vector rowData,Vector columnNames){super(rowData,columnNames);}public JTableHeader getTableHeader(){//定义表头JTableHeader tableHeader=super.getTableHeader();//获得表个头对象tableHeader.setReorderingAllowed(false);//设置表格列不可重拍DefaultTableCellRenderer hr=(DefaultTableCellRenderer)tableHeader.getDefaultRenderer();//获得表个头的单元格对象hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);//设置列名居中显示return tableHeader;}public TableCellRenderer getDefaultRenderer(Class<?>columnClass){//定义单元格DefaultTableCellRenderer cr=(DefaultTableCellRenderer)super.getDefaultRenderer(columnClass);//获得表格的单元格对象cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);//设置单元格内容居中显示return cr;}public boolean isCellEditable(int row,int column){return false;//表格不可编辑}}}