JAVA图形界面(GUI)之表格

表格(JTable)是我们在GUI开发中很常用的一个组件。表格在可视化编程中用于显示信息,在Swing编程中非常有用,当要显示大量数据时,用表格可以清晰的显示出来。
本篇博客将演示JTable的基本用法。

构造方法:

方法名 说明
JTable() 构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化
JTable(int numRows, int numColumns) 使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable
JTable(Object[][] rowData, Object[] columnNames) 构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames
JTable(TableModel dm) 构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化
JTable(TableModel dm, TableColumnModel cm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和默认的选择模型对其进行初始化
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和选择模型 sm 对其进行初始化
JTable(Vector rowData, Vector columnNames) 构造一个 JTable 来显示 Vector 所组成的 Vector rowData 中的值,其列名称为 columnNames

使用示例:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.MessageFormat;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * 表格示例
 * 
 * @author jianggujin
 *
 */
public class TableDemo extends JFrame
{
   // 默认表格模型
   private DefaultTableModel model = null;
   private JTable table = null;

   private JButton addBtn = null;

   public TableDemo()
   {
      super("TableDemo");
      String[][] datas = {};
      String[] titles = { "列一", "列二" };
      model = new DefaultTableModel(datas, titles);
      table = new JTable(model);

      addBtn = new JButton("添加数据");
      addBtn.addActionListener(new ActionListener() {

         @Override
         public void actionPerformed(ActionEvent e)
         {
            model.addRow(new String[] { getRandomData(), getRandomData() });
         }
      });

      add(addBtn, BorderLayout.NORTH);
      add(new JScrollPane(table));

      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);

   }

   public static void main(String[] args)
   {
      new TableDemo();
   }

   /**
    * 获得随机字符串,该方法仅用于获得随机字符串,可以忽略
    * 
    * @return
    */
   private String getRandomData()
   {
      String source = "0123456789abcdefghijklmnopqrstuvwxyz";
      int len = source.length();
      Random random = new Random(System.currentTimeMillis());
      return MessageFormat.format("{0}{0}{0}", source.charAt(random.nextInt(len)));
   }
}

运行效果:
JAVA图形界面(GUI)之表格

上一篇:一起谈.NET技术,.NET的资源并不限于.resx文件,你可以采用任意存储形式 [下篇]


下一篇:Request.url用法