1. 程式人生 > >JAVA圖形介面(GUI)之表格

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))); } }

執行效果:
這裡寫圖片描述