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

标签 java swing jtable

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

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

此外,JTableHeader 类不支持 getToolTipLocation 方法。我已经为此努力了一段时间,任何示例或见解将不胜感激。

最佳答案

我错误地认为 JTableHeader 不支持 getToolTipLocation。它隐藏在 JComponent 类中,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;
        }
    };
}

关于java - 如何为 JTable 标题设置自定义工具提示位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60347620/

相关文章:

java - 如何获取 Swing 元素的屏幕位置?

java - 如何使用另一个 JFrame 中的数据更新 JFrame?

java - 在Java中获取文件的最后修改日期

java - JTable 单元格颜色随事件变化

java - JTable 有排序事件吗?

java - JTable 中的单元格编辑和 "Substance"L&F

java - JTable 不添加第一个单元格为空

Java - 更改每个类的 JTable 渲染器

java - 使用 JavaScript/Java 访问其他域的 Cookie

java - Logstash-Logback编码器: “IllegalAccessError: failed to access class […]”