Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để thay đổi độ rộng từng cột của JTable trong Java?

JTable

  • A JTable là một lớp con của JComponent để hiển thị các cấu trúc dữ liệu phức tạp.
  • A JTable có thể tuân theo mẫu thiết kế Bộ điều khiển chế độ xem mô hình (MVC) để hiển thị dữ liệu trong hàng cột .
  • DefaultTableModel lớp có thể mở rộng AbstractTableModel và nó có thể được sử dụng để thêm các hàng và cột vào JTable động.
  • DefaultTableCellRenderer lớp có thể mở rộng JLabel và nó có thể được sử dụng để thêm hình ảnh , văn bản màu và v.v. bên trong JTable ô .
  • Một JTable có thể tạo TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener, RowSorterListener giao diện.
  • Theo mặc định, chiều rộng của JTable là cố định, chúng tôi cũng có thể thay đổi chiều rộng của mỗi cột bằng cách sử dụng table.getColumnModel (). getColumn (). setPreferredWidth ( ) phương thức của lớp JTable.

Ví dụ

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();
   }
}

Đầu ra

Làm cách nào để thay đổi độ rộng từng cột của JTable trong Java?