Java:如何使用AWT显示多行工具提示?

标签 java tooltip awt multiline

我编写了一个应用程序,现在正在制作一个托盘图标。现在我想为托盘图标设置多行工具提示文本。但我不知道怎么办。我知道如何使用 Swing 做到这一点:

component.setToolTipText("<html>Line 1<br>Line2</html>");

但这不适用于 AWT。另外,通过 \n 分隔行也不起作用。

我在 Linux 上运行:

Ubuntu 10.04
Kernel Linux 2.6.32-22-generic
GNOME 2.30.0
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1)
OpenJDK Server VM (build 14.0-b16, mixed mode)

任何帮助将不胜感激。
谢谢

最佳答案

以下代码为我生成了一个完美的多行工具提示:

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class AWTScratch {
    public static void main(String[] args) {
        BufferedImage im = new BufferedImage(32, 32, BufferedImage.TYPE_INT_RGB);
        TrayIcon ti = new TrayIcon(im, "Multiline\nmulti");
        ti.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        ti.setImageAutoSize(true);
        if (SystemTray.isSupported()){
            SystemTray st=SystemTray.getSystemTray();
            try {
                st.add(ti);
            } catch (AWTException e1) {
                e1.printStackTrace();
            }
        }
    }
}

也许是平台问题。你能给我们你的操作系统和jvm版本吗?好像是个bug,看里面suns bug database .

关于Java:如何使用AWT显示多行工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2892414/

相关文章:

java - HEROKU - 无法使用 jdk11 部署 java 应用程序

css - Foundation 4 工具提示更改最高值

java - 将一个点连接到不同点之间的每两个最接近的点

Java GUI 兼容 Mac 和 Windows

java - 超出框架边界时形状不会返回

java - 您如何从 JBPM/Drools 流程实例中获取数据?

java - 有没有办法从字符串的值创建一个对象名称的对象

java - hibernate-redis 是否支持由不同的 hibernate 实例共享的二级缓存

javascript - Highcharts 使用格式化程序更改工具提示日期时间

c++ - Tooltip 被限制在 80 个字符甚至 setmaxtipwidth 为 32767