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

时间:2010-05-23 15:55:33

标签: 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)

非常感谢任何帮助 感谢

2 个答案:

答案 0 :(得分:3)

以下代码为我生成了一个非常精细的多行工具提示:

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();
            }
        }
    }
}

也许是一个平台问题。你能给我们你的OS和jvm版本吗?似乎是一个错误,请参阅suns bug database内部。

答案 1 :(得分:0)

JToolTip派生自JComponent,但您可以使用Graphics - 仅限方法自行模拟效果,如此example类的AlphaView类所示