Сделайте Java-Systray красивее в Linux - PullRequest
26 голосов
/ 25 января 2011

Я делаю Java-приложение для Linux, которое использует sytray , используя Java 6 и Swing .Приложение выглядит великолепно (использует внешний вид системы), но systray выглядит ужасно.Я имею в виду, что меню systray выглядит как старые виджеты (Мотив?).Интересно, есть ли способ установить внешний вид или что-то, чтобы сделать системный трей красивее.

Вот скриншот лотка: enter image description here

Ответы [ 6 ]

5 голосов
/ 03 февраля 2011

Вы пробовали JXTrayIcon ?

Я тестировал это демо от SwingHelper на Ubuntu 10.10 с Compiz, и это выглядит круто.

2 голосов
/ 31 января 2011

Я написал свою собственную библиотеку для этого.Вот ссылка:

http://www.2shared.com/file/sQdjb6aG/jtray.html

Использование:

import javax.swing.jtray.*;

JTrayIcon.initSystemTray();
JTrayIcon icon = new JTrayIcon(img, "Tooltip", jpopupmenu);
icon.displayMessage(null, "Title", "Multiline\nsecondline", 3000); // 3 seconds

Библиотека использует несколько грязных трюков, поэтому, возможно, она может не работать на любой платформе Linux, так какхорошо как в Ubuntu.Он также должен работать для Windows и OSX.

2 голосов
/ 31 января 2011

Поскольку Swing использует AWT на Systray , если вы хотите, чтобы на systray был великолепный вид. Может быть, вы можете попробовать с SWT:)

2 голосов
/ 25 января 2011

Swing использует эмулированные виджеты пользовательского интерфейса. Он имеет несколько стилей или тем, которые вы можете применять. Если вы предпочитаете более нативные результаты, вам нужно искать другой набор инструментов для виджетов. У вас есть несколько вариантов:

  1. Если ваши потребности очень просты, вы можете быть довольны AWT, который является исходным инструментарием Java UI. Он использует собственные виджеты, но имеет очень ограниченную библиотеку виджетов, которые он поддерживает.

  2. Если вы хотите выйти за рамки AWT, рассмотрите SWT, который поддерживается на eclipse.org. Он предоставляет вам богатую библиотеку виджетов, которые реализованы изначально.

1 голос
/ 09 февраля 2011

Быстрый и грязный обходной путь: Создайте непокрашенный JDialog, добавьте для него JPopupMenu и сделайте его видимым из прослушивателя мыши вашего TrayIcon, как вы хотите.

1 голос
/ 01 февраля 2011

Я сам не пробовал, но если вы используете Java 6 Update 10 или более позднюю версию, можете ли вы использовать новый внешний вид Nimbus?:

Использование Nimbus LAF

Я слышал о значках в трее, используя "JPopupMenu" в Ubuntu, который использует внешний вид Nimbus, так что это может быть вашим лучшим выбором:

Использование JPopupMenu в TrayIcon

Из того, что я видел, использование JPopupMenu само по себе было бы большим улучшением - в сочетании с Nimbus оно должно быть потрясающим.

...