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

เราจะนำ word wrap JTableHeader ของ JTable ใน Java ไปใช้ได้อย่างไร


JTableHeader

  • A JTableHeader เป็นคลาสย่อยของ JComponent คลาส.
  • เมื่อเราสร้าง JTable วัตถุ ตัวสร้างสร้าง JTableHeader . ใหม่ วัตถุเพื่อจัดการส่วนหัวขององค์ประกอบตาราง
  • The JTableHeader ออบเจ็กต์ที่เกี่ยวข้องกับ โมเดลคอลัมน์ . ของคอมโพเนนต์ตาราง เพื่อให้ผู้รับมอบสิทธิ์ UI สามารถลากคอลัมน์และแสดงผลเซลล์ส่วนหัวของแต่ละคอลัมน์ได้
  • JTable ให้ setTableHeader() เมธอดที่สร้าง JTableHeader . ขององค์ประกอบส่วนหัวของตาราง วัตถุ และ getTableHeader() วิธีที่ส่งคืนการอ้างอิงไปยัง JTableHeader . ของคอมโพเนนต์ส่วนหัวของตาราง วัตถุ .

เราสามารถใช้ ส่วนหัวของตารางตัดคำ ของ JTable โดยกำหนด DefaultTableModel class หรือ AbstractTableModel ชั้นเรียน

ตัวอย่าง

import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class WordWrappingTableHeaderTest extends JFrame {
   private JTable table;
   public WordWrappingTableHeaderTest() {
      setTitle("WordWrappingTableHeader Test");
      DefaultTableColumnModel tableColumnModel = new DefaultTableColumnModel() {
         public void addColumn(TableColumn column) {
            column.setHeaderRenderer(new JTableHeader().getDefaultRenderer());
            super.addColumn(column);
         }
      };
      table = new JTable();
      table.setFillsViewportHeight(true);
      table.setColumnModel(tableColumnModel);
      table.setModel(new DemoTableModel(Arrays.asList("Word Wrapping TableHeader Test", "Word Wrapping TableHeader Test", "Word Wrapping TableHeader Test"), 20));
      add(new JScrollPane(table));
      setSize(450, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setResizable(false);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   class DemoTableModel extends AbstractTableModel {
      private ArrayList wrappedColumnNames = new ArrayList();
      private int numRows;
      DemoTableModel(List columnNames, int numRows) {
         for (String name: columnNames)
            wrappedColumnNames.add("" + name + "");
            this.numRows = numRows;
      }
      public int getRowCount() {
         return numRows;
      }
      public int getColumnCount() {
         return wrappedColumnNames.size();
      }
      public Object getValueAt(int rowIndex, int columnIndex) {
         return Integer.valueOf(10000 + (rowIndex + 1)*(columnIndex + 1));
      }
      public String getColumnName(int column) {
         return wrappedColumnNames.get(column);
      }
      public Class getColumnClass(int columnIndex) {
         return Integer.class;
      }
   }
   public static void main(String[] args) {
     new WordWrappingTableHeaderTest();
   }
}

ผลลัพธ์

เราจะนำ word wrap JTableHeader ของ JTable ใน Java ไปใช้ได้อย่างไร