用java创建表格的两种形式(1)

创建表格需创建数据模型,有两种数据模型DefaultTableModel和AbstractTableModel,DefaultTableModel是java_api中提供的类可以直接使用, AbstractTableModel是接口需覆盖其中的方法,不多,就三种方法:getRowCount(),getColumnCount(),getValueAt()。

1.用 DefaultTableModel创建表格

DefaultTableModel是java api中提供的类,用它可以很容易的创建表格,如创建4行3列的表格:

javax.swing .table.DefaultTableModel dtm = new javax.swing .table.DefaultTableModel(4,3);

javax.swing.JTable jt = new javax.swing.JTable(dtm);

好了表格创建好了,只需把 jt 加入窗口就可使用了。其他一些对表格的操作java api已经提供,可以直接查java api。

2.用 AbstractTableModel 创建表格

用AbstractTableModel创建表格需要写一个类实现接口,类中需要包含一个二维数组,二维数组中的内容就是表格中的内容,如:

 

public class TableValues extends AbstractTableModel{

    public int[][] values = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8}};  //二维数组

    public int getRowCount() {                    //覆盖getRowCount(),返回行数

       return values.length;

    }

    public int getColumnCount() {              //覆盖getColumnCount(),返回列数

       return values[0].length;

    }

    public Object getValueAt(int rowIndex, int columnIndex) {//返回指定位置元素

       return values[rowIndex][columnIndex];

    }

}

接着就是如何来创建表格,如下:

 

javax.swing.JTable jt = new javax.swing.JTable(new TableValues());

下面的代码是包含两种数据模型DefaultTableModel和AbstractTableModel的例子

 

import javax.swing.table.AbstractTableModel;

 

import java.awt.*;

import javax.swing.*;

 

public class TableValues extends AbstractTableModel{

       

    public int[][] values = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8}};

    public int getRowCount() {

       return values.length;

    }

    public int getColumnCount() {

       return values[0].length;

    }

    public Object getValueAt(int rowIndex, int columnIndex) {

       return values[rowIndex][columnIndex];

    }

}

 

public class SimpleTableTest extends JFrame{

    public SimpleTableTest() {

        Container pane = getContentPane();

        pane.setLayout(new BorderLayout());

        TableValues tv = new TableValues();

        table =new JTable(tv);

        table1 = new JTable(new javax.swing.table.DefaultTableModel(4, 5));

        pane.add(table,BorderLayout.CENTER);

        pane.add(table1,BorderLayout.SOUTH);

    }

    protected JTable table,table1;

    public static void main(String[] args){

        SimpleTableTest stt = new SimpleTableTest();

        stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        stt.setSize(400, 200);

        stt.setVisible(true);

    }

}

执行结果:

 

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值