Java: Как отобразить многострочную подсказку с помощью AWT? - PullRequest
2 голосов
/ 23 мая 2010

Я написал приложение и сейчас делаю иконку в трее. Теперь я хочу установить многострочный текст подсказки для иконки в трее. Но я не знаю как. Я знаю, как это сделать с помощью 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 ]

3 голосов
/ 24 мая 2010

Следующий код дал мне прекрасную многострочную подсказку:

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? Кажется, это ошибка, загляните внутрь база данных ошибок .

0 голосов
/ 23 мая 2010

JToolTip происходит от JComponent, но вы можете имитировать эффект самостоятельно, используя Graphics -только методы, как показано в классе AlphaView этого примера .

...