3

我正在使用以下代码配置系统托盘图标:

/**
 * Configura os ícones da shell principal
 */
protected void setDiplayIcons(Shell shell){
    Display display = shell.getDisplay();
    InputStream inputImgTray = getClass().getClassLoader().getResourceAsStream(ImagensNaNOffline.IMG_LOGO_SEBRAE.getPath());
    Image image = new Image(display, inputImgTray);
    shell.setImage(image);

    Tray tray = display.getSystemTray();

    final ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION);
    tip.setMessage("Balloon Message Goes Here!");
    if(tray != null) {
        TrayItem trayItem = new TrayItem(tray, SWT.NONE);
        trayItem.setImage(image);
        tip.setText("Balloon Title goes here.");
        trayItem.setToolTip(tip);
        final Menu menu = new Menu(shell, SWT.POP_UP);
        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText("Button A");
        menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText("Button B");
        menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText("Show Tooltip");
        menuItem.addListener (SWT.Selection, new Listener () {          
            public void handleEvent (Event e) {
                tip.setVisible(true);
            }
        });         
        trayItem.addListener (SWT.MenuDetect, new Listener () {
            public void handleEvent (Event event) {
                menu.setVisible (true);
            }
        });         
    }

}           

托盘设置正常,但字符串“SWT”作为标签出现在托盘图标的一侧。

系统是 Fedora Core 17 (GNOME)。

这是平台问题还是有办法更改文本?

这是一个屏幕截图:

在此处输入图像描述

4

2 回答 2

2

您对 Gnome 3.x 有误解。系统托盘位于右下角,可与提供的代码示例一起正常工作。所以“SWT”位于您的应用程序标题栏中;显示的菜单是默认插入退出菜单项的应用程序菜单。

您的屏幕截图显示了桌面的左上角。“SWT”是使用 SWT 创建的应用程序的默认后备值。在测试时,我很惊讶它与(活动)窗口的标题不对应。我想这是一个错误。关于如何确定应用程序标题的技术细节可以在这个问题(Python 和 PyGTK;一些外部参考)中找到:如何在 Gnome Shell 中设置应用程序标题?

于 2013-01-16T22:25:18.830 回答
0

我设法更改了应用程序名称,因此我在 KDE 的系统托盘中看到的文本,通过使用:

Display.setAppName("Whatever");

最重要的是 SWT 代码。

于 2018-11-02T15:20:26.210 回答