如何在 Java 中為 JTableHeader 的每一列設定工具提示?
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;
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP