天津seo建站,百度舆情,电商网站设计公司力荐亿企邦,网站要实现的电商功能这里是用MyTable来继承AbstractTableModel来创建自己的表格模型#xff0c;然后#xff0c;调用JTable(TableModel tm)的构造方法来创建表格。 这里MyTable必须实现三个方法#xff1a;API如图#xff1a; 其实在实际应用中#xff0c;除了实现上面的三个方法#xff0…这里是用MyTable来继承AbstractTableModel来创建自己的表格模型然后调用JTable(TableModel tm)的构造方法来创建表格。 这里MyTable必须实现三个方法API如图 其实在实际应用中除了实现上面的三个方法有时根据需要还会重写getColumnName(int column)和getColumnClass(int c)方法。
代码实现如图
package com.acconsys.swing.chapter14;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;/*** 展示如何使用AbstractTableModel类来创建一个表格* * author burns* */
public class Test7 {public Test7() {JFrame f new JFrame();MyTable mt new MyTable();JTable t new JTable(mt);t.setPreferredScrollableViewportSize(new Dimension(550, 30));JScrollPane s new JScrollPane(t);f.getContentPane().add(s, BorderLayout.CENTER);f.setTitle(表格模型的创建实例);f.pack();f.setVisible(true);f.addWindowListener(new WindowAdapter() {Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] args) {new Test7();}
}/*** MyTable继承AbstractTableModel 来自定义自己的表格模型。* * author burns* */
class MyTable extends AbstractTableModel {/*** */private static final long serialVersionUID 1L;// 创建一个类MyTable它继承自AbstractTableModel类// 在这个类中实现getRowCount()getColumnCount()getValueAt()这三个方法Object[][] p {{ 王鹏, new Integer(91), new Integer(1949), new Integer(1910) },{ 朱学莲, new Integer(82), new Integer(1969), new Integer(1510) },{ 梅婷, new Integer(47), new Integer(1957), new Integer(1040) },{ 赵龙, new Integer(61), new Integer(1957), new Integer(1180) },{ 李兵, new Integer(90), new Integer(1987), new Integer(1770) }, };String[] n { 姓名, 工号, 出生年月, 薪水 };/*** 此方法是返回该模型中的行数*/Overridepublic int getRowCount() {return p.length;}/*** 此方法是返回该模型中的列数*/Overridepublic int getColumnCount() {return n.length;}/*** 此方法是返回row和col的单元格的值*/Overridepublic Object getValueAt(int row, int col) {return p[row][col];}/*** 此方法返回col位置的列的名称*/Overridepublic String getColumnName(int column) {return n[column];}/*** 此方法是针对列中所有的单元格值返回最具体的超类*/Overridepublic Class? getColumnClass(int c) {return getValueAt(0, c).getClass();}}