对表头进行设置,这里提供两种方法:
一:通过表头类(JTableHeader)设置
JTable类对象的getTableHeader()方法可以获取表头的表头类对象
下面直接看例子:
package cn.com;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
public class ArrayCreateTable extends JFrame
{
private JTable table;
private static final long serialVersionUID = 1L;
public void init()
{
//初始化表格
this.table = new JTable(new DefaultTableModel())
{
//表格不允许被编辑
public boolean isCellEditable(int row, int column)
{
return false;
}
};
JTableHeader tab_header = this.table.getTableHeader(); //获取表头
tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 15));
tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); //修改表头的高度
this.table.setFont(new Font("微软雅黑", Font.PLAIN, 13));
this.table.setRowHeight(30); //设置表格体的行高
DefaultTableModel model =(DefaultTableModel)this.table.getModel(); //获取表格模型
model.setColumnIdentifiers(new Object[] {"文件名" , "文件大小(B)" , "修改时间"});//修改表头内容
this.table.setModel(model);
JScrollPane cen_pan = new JScrollPane();
cen_pan.add(this.table);
cen_pan.setViewportView(this.table);
this.add(cen_pan);
//窗体属性设置
this.setVisible(true);
this.setSize(450, 600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("文件过滤器");
this.setLocationRelativeTo(null);
}
public ArrayCreateTable()
{
init();
}
public static void main(String args[])
{
new ArrayCreateTable();
}
}
二:通过表格的列模型设置
这个方法要通过JTable的getColumnModel()方法获取表格的列模型,然后从列模型对象的getColumn()方法获取列对象,最后通过列对象的setPreferredWidth()方法实现。
package cn.com;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
public class ArrayCreateTable extends JFrame
{
private JTable table;
public static void main(String args[])
{
ArrayCreateTable win = new ArrayCreateTable();
}
public void init()
{
this.table = new JTable();
JScrollPane nor_pan = new JScrollPane();
DefaultTableModel model = (DefaultTableModel)this.table.getModel();
//设置表头
model.setColumnIdentifiers(new String[] {"ID" , "姓名" , "性别" , "年龄" , "邮箱" , "居住地", "备注"});
int[] length = {120 , 50 , 50 , 50 , 80 , 120,100}; //表格的列宽
//获取表格的 列 模型
TableColumnModel model0 = this.table.getColumnModel();
//设置每列的宽度
for (int i = 0 ; i<model0.getColumnCount() ; i++)
{
TableColumn column = model0.getColumn(i); //获取列对象
column.setPreferredWidth(length[i]); //设置列宽
}
this.table.setModel(model);
nor_pan.add(this.table);
nor_pan.setViewportView(table); //设置一个可见视图
this.add(nor_pan , BorderLayout.CENTER);
//容器属性设置
this.setTitle("用数组设置JTable的列名和列宽");
this.setSize(600, 500);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
}
public ArrayCreateTable()
{
init();
}
}