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

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


JTable

  • A JTable เป็นคลาสย่อยของ JComponent สำหรับแสดงโครงสร้างข้อมูลที่ซับซ้อน
  • A JTable สามารถทำตามรูปแบบการออกแบบ Model View Controller (MVC) สำหรับแสดงข้อมูลใน แถว ​​ และ คอลัมน์ .
  • The DefaultTableModel คลาสสามารถขยาย AbstractTableModel และสามารถใช้เพื่อเพิ่มแถวและคอลัมน์ใน JTable แบบไดนามิก
  • ตัว DefaultTableCellRenderer คลาสสามารถขยาย JLabel คลาสและสามารถใช้เพื่อเพิ่ม รูปภาพ , ข้อความสี และอื่นๆ ภายใน JTable เซลล์ .
  • JTable สามารถสร้าง TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener, RowSorterListener อินเทอร์เฟซ
  • โดยค่าเริ่มต้น ความกว้างของ JTable จะคงที่ เรายังสามารถเปลี่ยนความกว้างของแต่ละคอลัมน์ได้โดยใช้ table.getColumnModel().getColumn().setPreferredWidth( ) วิธีการของคลาส JTable

ตัวอย่าง

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

ผลลัพธ์

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