如何在Java中更改JTable中每列的寬度?
JTable
- JTable 是一個用於顯示覆雜資料結構的 JComponent 的子類。
- JTable 可以遵循 模型-檢視-控制器 (MVC) 設計模式 來顯示資料,以行和列的形式呈現。
- DefaultTableModel 類可以擴充套件 AbstractTableModel 類,並且可以用來動態地向 JTable 新增行和列。
- DefaultTableCellRenderer 類可以擴充套件 JLabel 類,並且可以用來在 JTable 的單元格中新增影像、彩色文字等。
- JTable 可以生成 TableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener、RowSorterListener 介面。
- 預設情況下,JTable 的寬度是固定的,我們也可以使用 JTable 類的 table.getColumnModel().getColumn().setPreferredWidth() 方法更改每列的寬度。
示例
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableTest extends JFrame {
private JTable table;
private JScrollPane scrollPane;
private DefaultTableModel model;
private DefaultTableCellRenderer cellRenderer;
public JTableTest() {
setTitle("JTable Test");
setLayout(new FlowLayout());
scrollPane = new JScrollPane();
JTable table = new JTable();
scrollPane.setViewportView(table);
model = (DefaultTableModel)table.getModel();
model.addColumn("S.No");
model.addColumn("First Name");
model.addColumn("Last Name");
model.addColumn("Email");
model.addColumn("Contact");
for(int i = 0;i < 4; i++) {
model.addRow(new Object[0]);
model.setValueAt(i+1, i, 0);
model.setValueAt("Tutorials", i, 1);
model.setValueAt("Point", i, 2);
model.setValueAt("@tutorialspoint.com", i, 3);
model.setValueAt("123456789", i, 4);
}
// set the column width for each column
table.getColumnModel().getColumn(0).setPreferredWidth(5);
table.getColumnModel().getColumn(3).setPreferredWidth(100);
cellRenderer = new DefaultTableCellRenderer();
cellRenderer.setHorizontalAlignment(JLabel.CENTER);
table.getColumnModel().getColumn(0).setCellRenderer(cellRenderer);
add(scrollPane);
setSize(475, 250);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JTableTest();
}
}輸出
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP