表头怎么放进jtable中
时间: 2024-01-22 21:19:50 浏览: 26
要将表头放入 JTable 中,可以使用 JTable 的 setModel 方法来设置一个实现了 TableModel 接口的对象。
TableModel 接口中有一个方法 getColumnCount() 用于获取列数,另外还有一个方法 getColumnName(int column) 用于获取指定列的名称。
因此,我们可以自定义一个实现了 TableModel 接口的类,其中重写 getColumnCount() 和 getColumnName(int column) 方法即可。
以下是一个简单的例子:
```
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
public class TableHeaderExample extends JFrame {
private JTable table;
private JScrollPane scrollPane;
public TableHeaderExample() {
setTitle("Table Header Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
// 创建一个实现了 TableModel 接口的类
MyTableModel model = new MyTableModel();
// 创建一个 JTable 并设置其数据模型
table = new JTable(model);
// 创建一个滚动面板,并将 JTable 放入其中
scrollPane = new JScrollPane(table);
// 设置表头字体和颜色
JTableHeader header = table.getTableHeader();
header.setFont(new Font("Serif", Font.BOLD, 18));
header.setForeground(Color.BLUE);
// 将滚动面板添加到窗口中
add(scrollPane);
setVisible(true);
}
// 自定义一个实现了 TableModel 接口的类
class MyTableModel extends AbstractTableModel {
// 表格数据
private Object[][] data = {
{"John", "Doe", 33},
{"Jane", "Doe", 31},
{"Bob", "Smith", 45},
{"Bill", "Jones", 22}
};
// 表头名称
private String[] columnNames = {"First Name", "Last Name", "Age"};
// 获取列数
@Override
public int getColumnCount() {
return columnNames.length;
}
// 获取行数
@Override
public int getRowCount() {
return data.length;
}
// 获取指定单元格的值
@Override
public Object getValueAt(int row, int col) {
return data[row][col];
}
// 获取指定列的名称
@Override
public String getColumnName(int column) {
return columnNames[column];
}
}
public static void main(String[] args) {
new TableHeaderExample();
}
}
```
运行该程序,即可看到带有表头的 JTable。