Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีเปลี่ยนความกว้างของแต่ละคอลัมน์ใน JTable ด้วย Java

JTable

  • JTable เป็นคลาสย่อยของ JComponent สำหรับแสดงโครงสร้างข้อมูลที่ซับซ้อน
  • JTable ใช้รูปแบบ Model View Controller (MVC) ในการแสดงข้อมูลใน แถว และ คอลัมน์
  • DefaultTableModel ขยายจาก AbstractTableModel ใช้เพิ่มแถวและคอลัมน์ใน JTable แบบไดนามิก
  • DefaultTableCellRenderer ขยายจาก JLabel ใช้เพิ่ม รูปภาพ ข้อความสี และอื่นๆ ใน เซลล์ JTable
  • JTable สร้างอินเทอร์เฟซ TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener, RowSorterListener
  • ค่าเริ่มต้นความกว้าง 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);
        }

        // ตั้งค่าความกว้างคอลัมน์แต่ละคอลัมน์
        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();
    }
}

ผลลัพธ์

วิธีเปลี่ยนความกว้างของแต่ละคอลัมน์ใน JTable ด้วย Java