Java Swing JTable 表格【5:表格模型AbstractTableModel】

Java Swing JTable 表格【5:表格模型AbstractTableModel】这里是用MyTable来继承AbstractTableModel来创建自己的表格模型,然后,调用JTable(TableModeltm)的构造方法来创建表格。这里MyTable必须实现三个方法:API如图:其实在实际应用中,除了实现上面的三个方法,有时根据需要还会重写getColumnName(intcolumn)和getColumnClass(intc)方法。代码实现如图pa

这里是用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() {
            @Override
            public 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 = { "姓名", "工号", "出生年月", "薪水" };

    /** * 此方法是返回该模型中的行数 */
    @Override
    public int getRowCount() {
        return p.length;
    }

    /** * 此方法是返回该模型中的列数 */
    @Override
    public int getColumnCount() {
        return n.length;
    }

    /** * 此方法是返回row和col的单元格的值 */
    @Override
    public Object getValueAt(int row, int col) {
        return p[row][col];
    }

    /** * 此方法返回col位置的列的名称 */
    @Override
    public String getColumnName(int column) {
        return n[column];
    }

    /** * 此方法是针对列中所有的单元格值,返回最具体的超类 */
    @Override
    public Class<?> getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

}

今天的文章Java Swing JTable 表格【5:表格模型AbstractTableModel】分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31401.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注