如何为JTable标头设置自定义工具提示位置?

问题描述 投票:1回答:1

如何设置JTable标头的工具提示位置?我没有显示工具提示的问题,但我想将其直接放在列标题上方,而不是默认位置(在鼠标光标下方)。

我可以通过重写JTable类中的getToolTipLocation方法来成功地为JTable单元执行此操作,但是它似乎不适用于表头。

同样,JTableHeader类不支持getToolTipLocation方法。我已经为此花了一段时间了,任何样本或见识都将不胜感激。

java swing jtable
1个回答
0
投票

我对JTableHeader不支持getToolTipLocation是错误的。它埋在JTableHeader的子类的JComponent类中。我提供的代码示例解决了我的问题。我在JTable类的子类中实现了代码。如果示例似乎不完整,我仍然会习惯于此站点和我的道歉。

protected JTableHeader createDefaultTableHeader() {     
    return new JTableHeader(this.columnModel) {
        Point p = null;
        @Override
        public String getToolTipText(MouseEvent e) {
            int colIdx = this.columnAtPoint(e.getPoint());
            Rectangle rect = this.getHeaderRect(colIdx);
            p = rect.getLocation();
            return this.columnModel.getColumn(colIdx).getHeaderValue().toString();
        }

        @Override
        public Point getToolTipLocation(MouseEvent e) {
            return p;
        }
    };
}
© www.soinside.com 2019 - 2024. All rights reserved.