package com.ethan.table; import java.awt.BorderLayout; import java.awt.Color; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; public class ArrayCreateTableFrame extends JFrame { private JTable table; public ArrayCreateTableFrame() { super(); setTitle("使用数组创建表格"); setBounds(100,100,360,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane,BorderLayout.CENTER); String[] columnNames = {"A","B"}; String[][] tableValues = {{"a1","b1"},{"a1","b1"},{"a1","b1"},{"a1","b1"},{"a1","b1"},{"a1","b1"},{"a1","b1"}}; Vector columnNameV = new Vector(); for(int i=0;i<columnNames.length;i++) { columnNameV.add(columnNames[i]); } Vector tableValueV = new Vector(); for(int i=0;i<tableValues.length;i++) { Vector v = new Vector(); for(int j=0;j<tableValues[i].length;j++) { v.add(tableValues[i][j]); } tableValueV.add(v); } table = new MTable(tableValueV,columnNameV); //关闭自动调整,产生水平滚动条 //table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //可以连续选择多行,本身就可以.下边的代码不能隔选,只能连着 //table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); table.setSelectionBackground(Color.YELLOW); table.setForeground(Color.RED); table.setRowHeight(30); scrollPane.setViewportView(table); /* * Vector columnNameV = new Vector(); * columnNameV.add("a"); * columnNameV.add("b"); * * Vector tableValueV = new Vector(); * for(int row=1;row<6;row++) { * Vector rowV = new Vector(); * rowV.add("a"+row); * rowV.add("b"+row); * * tableValueV.add(rowV); * } */ } public static void main(String args[]) { ArrayCreateTableFrame a = new ArrayCreateTableFrame(); a.setVisible(true); } //JTable可以edit private class MTable extends JTable { public MTable(Vector rowData, Vector columnNames) { super(rowData,columnNames); } @Override public boolean isCellEditable(int row, int column) { // TODO Auto-generated method stub return false;//双击不能编辑 } @Override public JTableHeader getTableHeader() { // TODO Auto-generated method stub JTableHeader tableHeader = super.getTableHeader(); //设置是否允许调换列的位置,默认true tableHeader.setReorderingAllowed(false); //设置列名居中显示 DefaultTableCellRenderer cr = (DefaultTableCellRenderer) tableHeader.getDefaultRenderer(); //内容居中,默认靠左 cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return tableHeader; } @Override public TableCellRenderer getDefaultRenderer(Class<?> columnClass) { // TODO Auto-generated method stub DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super.getDefaultRenderer(columnClass); //设置内容居中 cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return cr; } } }
【上篇】JavaEE经典试题(七) Spring的IOC简介
【下篇】Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)
【下篇】Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)