JAVA圖形介面(GUI)之表格
阿新 • • 發佈:2019-02-05
表格(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)));
}
}
執行效果: