JTable

一:JTable和TableModel关系

TableModel:为Table提供显示数据、表格维数、表格中显示数据类型、标题等Table需要显示的一些属性。

JTable:提供表格本身的属性和操作,比如表格的样式、行高、背景、行选中属性等。

javax.swing.table.TableModel和javax.swing.JTable之间的关系:模特与衣服之间的关系。


JTable:模特衣服,主要是把数据通过二维表格方式表示出来。

创建JTable并加载模型

JTable table = new JTable(TableModel);  *如果要显示第一行标题栏,则必须把table添加到JScrollPane中。


import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableModel;

/*
 * JTabel测试*/

public class TableTestFrame extends JFrame{
	public static void main(String[] args) {
		TableTestFrame table = new TableTestFrame();
		table.initFrame();
	}

	public void initFrame() {
		this.setSize(600,600);
		this.setResizable(false);
		this.setTitle("table测试");
		this.setDefaultCloseOperation(3);
		this.setLayout(new FlowLayout());
		this.setLocationRelativeTo(null);
		//创建子类TableModel对象
		ModelTest mt = new ModelTest();
		//表格	
		JTable table = new JTable(mt);
		//设置table样式
		table.setRowHeight(40);
		//设置列宽
//		int columnCount = table.getColumnCount();
//		for(int i=0;i


import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

/*
 * 属于表格模型*/
public class ModelTest implements TableModel{
	//定义二维数组
	private String[][] value = new String[7][8];
	//定义标题的一维数组
	private String[] title ={"1","2","3","4","5","6","7","8",};
	//构造函数
	public ModelTest(){
		for(int i=0;i getColumnClass(int columnIndex) {	
		return String.class;
	}

	public boolean isCellEditable(int rowIndex, int columnIndex) {		
		return true;
	}

	public Object getValueAt(int rowIndex, int columnIndex) {		
		return value[rowIndex][columnIndex];
	}

	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
		//设置后的值设置到数组中
		value[rowIndex][columnIndex]=(String) aValue;
		
	}

	public void addTableModelListener(TableModelListener l) {
		
		
	}

	public void removeTableModelListener(TableModelListener l) {
		
		
	}

}


你可能感兴趣的:(JTable)