网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:JAVA教程 第七讲 Swing用户界面设计(一) 下一篇:JAVA教程 第八讲 Java网络编程(一)
JAVA教程 第七讲 Swing用户界面设计(二)

来源: 作者: 添加日期:2005-9-4 19:19:56 点击次数:

7.2.3.19 表格(JTable)

  表格是Swing新增加的组件,主要功能是把数据以二维表格的形式显示出来。使用表格,依据M-V-C的思想,最好先生成一个MyTableModel类型的对象来表示数据,这个类是从AbstractTableModel类中继承来的,其中有几个方法是一定要重写,例如getColumnCount,getRowCount,getColumnName,getValueAt。因为Jtable会从这个对象中自动获取表格显示所必需的数据,AbstractTableModel类的对象负责表格大小的确定(行、列)、内容的填写、赋值、表格单元更新的检测等等一切跟表格内容有关的属性及其操作。JTable类生成的对象以该TableModel为参数,并负责将TableModel对象中的数据以表格的形式显示出来。

  JTable类常用的方法有:
  getModel() //获得表格的数据来源对象
  JTable(TableModel dm) //dm对象中包含了表格要显示的数据
  //下列两个构造方法,第一个参数是数据,第二个参数是表格第一行中显示的内容
  JTable(object[][]rowData,object[]columnNams);
  JTable(Vector[][]rowData,Vector[]columnNams);

 例7.3 RecorderOfWorkers
  import javax.swing.JTable;
  import javax.swing.table.AbstractTableModel;
  import javax.swing.JScrollPane;
  import javax.swing.JFrame;
  import javax.swing.SwingUtilities;
  import javax.swing.JOptionPane;
  import java.awt.*;
  import java.awt.event.*;

  public class TableDemo extends JFrame {
    private boolean DEBUG = true;
    public TableDemo() { //实现构造方法
      super("RecorderOfWorkers"); //首先调用父类JFrame的构造方法生成一个窗口
      MyTableModel myModel = new MyTableModel();//myModel存放表格的数据
      JTable table = new JTable(myModel);//表格对象table的数据来源是myModel对象
      table.setPreferredScrollableViewportSize(new Dimension(500, 70));//表格的显示尺寸

      //产生一个带滚动条的面板
      JScrollPane scrollPane = new JScrollPane(table);

      //将带滚动条的面板添加入窗口中
      getContentPane().add(scrollPane, BorderLayout.CENTER);

      addWindowListener(new WindowAdapter() {//注册窗口监听器
        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      });
  }
        //把要显示在表格中的数据存入字符串数组和Object数组中
  class MyTableModel extends AbstractTableModel {
     //表格中第一行所要显示的内容存放在字符串数组columnNames中
      final String[] columnNames = {"First Name",
                  "Position",
                  "Telephone",
                  "MonthlyPay",
                  "Married"};
     //表格中各行的内容保存在二维数组data中
      final Object[][] data = {
        {"Wangdong", "Executive",
        "01068790231", new Integer(5000), new Boolean(false)},
        {"LiHong", "Secretary",
        "01069785321", new Integer(3500), new Boolean(true)},
        {"LiRui", "Manager",
        "01065498732", new Integer(4500), new Boolean(false)},
        {"ZhaoXin", "Safeguard",
        "01062796879", new Integer(2000), new Boolean(true)},
        {"ChenLei", "Salesman",

本新闻共5页,当前在第1页  1  2  3  4  5  

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |