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

จะตั้งค่าคำแนะนำเครื่องมือให้กับแต่ละคอลัมน์ของ JTableHeader ใน Java ได้อย่างไร


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

ตัวอย่าง

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableHeaderToolTipTest extends JPanel {
   private DefaultTableModel dmodel;
   private JTable table;
   private JScrollPane jsp;
   public JTableHeaderToolTipTest() {
      setLayout(new BorderLayout());
      String[] headers = {"Name", "Age", "Contact Number", "City"};
      String[] toolTips = {"Name of Emp", "Age of Emp", "Contact Number of Emp","City of Emp"};
      dmodel = new DefaultTableModel(headers, 4);
      table = new JTable(dmodel);
      ToolTipHeader tooltipHeader = new ToolTipHeader(table.getColumnModel());
      tooltipHeader.setToolTipStrings(toolTips);
      table.setTableHeader(tooltipHeader);
      jsp = new JScrollPane(table);
      add(jsp, BorderLayout.CENTER);
   }
   public static void main(String[] args) {
      JFrame frame = new JFrame("JTableHeaderToolTip Test");
      frame.getContentPane().add(new JTableHeaderToolTipTest(), BorderLayout.CENTER);
      frame.setSize(400, 250);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }
}
// implementation code to set a tooltip text to each column of JTableHeader
class ToolTipHeader extends JTableHeader {
   String[] toolTips;
   public ToolTipHeader(TableColumnModel model) {
      super(model);
   }
   public String getToolTipText(MouseEvent e) {
      int col = columnAtPoint(e.getPoint());
      int modelCol = getTable().convertColumnIndexToModel(col);
      String retStr;
      try {
         retStr = toolTips[modelCol];
      } catch (NullPointerException ex) {
         retStr = "";
      } catch (ArrayIndexOutOfBoundsException ex) {
         retStr = "";
      }
      if (retStr.length() < 1) {
         retStr = super.getToolTipText(e);
      }
      return retStr;
   }
   public void setToolTipStrings(String[] toolTips) {
      this.toolTips = toolTips;
   }
}

ผลลัพธ์

จะตั้งค่าคำแนะนำเครื่องมือให้กับแต่ละคอลัมน์ของ JTableHeader ใน Java ได้อย่างไร