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<columnCount;i++){
//			 table.getColorModel().getColumn(i).setPreferredWidth(30);
//		}
		JScrollPane jsp = new JScrollPane(table);
		//设置滚动条大小
		jsp.setPreferredSize(new Dimension(400, 400));
		this.add(jsp);
		this.setVisible(true);
		
	}

}


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<value.length;i++){
			for(int j=0;j<value[0].length;j++){
				value[i][j] = "第"+i+"行第"+j+"列";
			}
		}
	}

	public int getRowCount() {		
		return value.length;
	}

	public int getColumnCount() {		
		return value[0].length;
	}

	public String getColumnName(int columnIndex) {	
		return title[columnIndex];
	}

	public Class<?> 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) {
		
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值