java - gnome 中的 SWT 托盘项

标签 java swt gnome system-tray gnome-shell

我对 Gnome Shell 中的托盘项目显示有疑问。

项目图标出现在下部栏中,我对此很满意,就像其他项目一样,当将鼠标移到图标上时,会显示文本。

我的问题是无法更改此文本:使用 .setText 设置文本不起作用,该类都不支持任何事件,但 Selected MenuDetect,分别检测左键单击和右键单击。

有人遇到过同样的问题吗?

提前非常感谢您的回答,

詹卢卡

最佳答案

不太确定您面临什么问题,但这对我有用:

public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    final Tray tray = display.getSystemTray();
    TrayItem item;
    if (tray != null) {
        item = new TrayItem(tray, SWT.NONE);
        item.setToolTipText("A");
        item.setImage(display.getSystemImage(SWT.ICON_ERROR));
    }

    Button button = new Button(shell, SWT.PUSH);
    button.setText("Change tray text");

    button.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event arg0) {

            if(tray != null)
            {
                TrayItem item = tray.getItem(0);
                item.setToolTipText(item.getToolTipText() + "A");
            }

        }
    });

    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    display.dispose();
}

请注意,我没有使用 setText(),而是使用 setToolTipText()

关于java - gnome 中的 SWT 托盘项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396763/

相关文章:

java - Linux SWT 浏览器 JavaScript.window.close() 方法不起作用

java - 从 Java 中的多个方法获取用户输入的最佳实践?

java - 无法从具有时间戳字段的 datastax 中检索数据

java - SWT 树和 TreeItem : Remove or change the drawing behavior of the expand/collapse indicator

linux - 使用 Gjs imports 语句导入什么?

c++ - 如何获取与 Linux 桌面中的文件关联的图标、MIME 类型和应用程序?

python - 如何在 Gnome 中为 Python 包分发 `.desktop` 文件和图标(使用 distutils 或 setuptools)?

java - 退出应用程序时是否应该关闭所有资源?

java - 使用代理模式编写服务器是个好主意吗?

java - 使用 SWT.MULTI 获取表的选定行