2

我写了一个应用程序,现在我正在制作一个托盘图标。现在我想为托盘图标设置一个多行工具提示文本。但我不知道怎么做。我知道如何用 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)

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

4

2 回答 2

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

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

于 2010-05-23T20:55:17.420 回答
0

JToolTip派生自JComponent,但您可以使用Graphics-only 方法自己模拟效果,如本示例AlphaView的类所示。

于 2010-05-23T16:51:36.370 回答