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

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

1.用 DefaultTableModel创建表格

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

javax.swing .table.DefaultTableModel dtm = newjavax.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(newTableValues());

下面的代码是包含两种数据模型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);

}

}

执行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值