下面显示的代码段向您展示了如何JTable在swing应用程序中创建一个简单的组件。要创建JTable组件,我们使用接受两个参数的构造函数对其进行初始化。
第一个参数是表的数据行,其类型为Object[][]的二维数组Object。第二个参数是表的列名,其类型是Object[]对象数组。
JTable创建实例后,我们将其放置在滚动窗格组件中,该组件又被添加到框架的内容窗格中。
package org.nhooo.example.swing; import javax.swing.*; import java.awt.*; import java.text.MessageFormat; import java.util.Calendar; public class SimpleJTableDemo extends JFrame { public SimpleJTableDemo() throws HeadlessException { initializeUI(); } private void initializeUI() { // 定义表的列名。 String[] columnNames = { "ID", "Name", "Date of Birth", "Sex" }; // 定义表的数据。 Object[][] rowData = { {1, "Alice", createDOB(1980, Calendar.JANUARY, 1), "F"}, {2, "Bob", createDOB(1982, Calendar.JUNE, 21), "M"}, {3, "Carol", createDOB(1970, Calendar.OCTOBER, 12), "M"}, {4, "Mallory", createDOB(1988, Calendar.FEBRUARY, 19), "M"}, {5, "Ignasia", createDOB(1984, Calendar.NOVEMBER, 28), "F"} }; // 初始化JTable的实例并指定表 //数据和列名。之后,我们将桌子放在 // 滚动窗格。 JTable table = new JTable(rowData, columnNames); JScrollPane pane = new JScrollPane(table); // 设置框架设置。 setTitle("Simple JTable Demo"); setSize(new Dimension(400, 200)); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setLayout(new BorderLayout()); getContentPane().add(pane, BorderLayout.CENTER); } private String createDOB(int year, int month, int day) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return MessageFormat.format("{0,date,dd-MMM-yyyy}", calendar.getTime()); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new SimpleJTableDemo().setVisible(true); } }); } }
当我们运行程序时,我们将看到以下结果: