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;
}
}
}
Swing 之 JTable学习(一)
最新推荐文章于 2024-07-03 22:07:43 发布