《表格的高级应用.ppt》由会员分享,可在线阅读,更多相关《表格的高级应用.ppt(11页珍藏版)》请在三一办公上搜索。
1、1,第6章 表格的高级应用,JTable控件介绍表格模型,2,6.1 JTable控件介绍,JTable是一种标准的Swing控件,用于显示一个二维对象表格。JTable采用了Swing MVC模式,使用JTable类创建的仅是数据的视图而没有包含真正的数据,其数据由其模型管理。,3,NetBeans中JTable的使用实例新建一个名称为TableProject的项目;向TableProject中添加一个通过JFrame模板创建的类,名称为DemoJTable;从“组件面板”窗口向DemoJTable中添加一个JTable控件,并将其名称修改为:factoryTable。,注意:JTable控
2、件本身没有自动滚动的功能,需要将其添加到JScrollPane中才能使用该功能,而且没有添加到JScrollPane中的表格还可能显示不正确。,4,model属性Table Settings:Column列中内容为列的索引号Title列中值为表格标题栏的内容Editable定义表格列的可编辑性Type列中值为表格相应列的类型,注意:选择了不同的列类型,在程序运行时表格列所对应的编辑器也会有所不同,例如选择了Integer类型,则此列只能输入整数,否则报错。,5,6.2 表格模型-TableModel,JTable类创建的只是表格的视图,其并不包含真正的数据,JTable使用实现了java.sw
3、ing.table.TableModel接口的类对象作为其数据模型。,6,AbstractTableModel类 AbstractTableModel类是一个抽象类,实现了TableModel接口中的大多数方法,但将最重要的部分留给开发人员完成,是开发人员创建自己表格模型的起点三个未实现的方法:public abstract int getColumnCount();public abstract int getRowCount();public abstract Object getValueAt(int row,int col);实例1 AbstractTableModel类的应用。,7,
4、DefaultTableModel类 一般情况下,DefaultTableModel使用对象数组或由多个Vector对象构成的Vector来存储单元格的值。例如:Vector title=new Vector();title.add(“姓名”);title.add(“密码”);,8,Vector first=new Vector();first.add(“wang”);first.add(“1234”);Vector second=new Vector();second.add(“li”);second.add(“1111”);Vector content=new Vector();conte
5、nt.add(first);content.add(second);DefaultTableModel myModel=new DefaultTableModel(content,title);,9,实例2 在NetBeans中开发使用DefaultTableModel的程序。,10,编写方法initialTableModel(),用于创建并初始化DefaultTableModel对象并返回;model属性,11,向表模型中添加行DefaultTableModel myModel=(DefaultTableModel)jTable.getModel();myModel.getDataVector().add(newRow);向表模型中删除第n行myModel.removeRow(n);向表模型中添加列myModel.addColumn(“列标题”);向表模型中删除列myModel.setColumnCount(n-1);,