SWT系统托盘-Linux GTK Gnome托盘图标上显示“SWT”字符串

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)。
这可能是一个平台问题,还是有方法可以更改文本?
以下是截图:

1
你能添加一张截图吗? - Baz
我没有添加截图的权限。但是在Gnome系统托盘中,当我在Eclipse中运行时,会发生以下情况:[IMG TRAY] SWT - davidfdr
是的,我知道。只需将它上传到其他地方并发布链接。然后我就可以在这里包含它。 - Baz
https://fabrica.infosolo.com.br/swt_shot1.png https://fabrica.infosolo.com.br/swt_shot2.png https://fabrica.infosolo.com.br/swt_shot3.png 谢谢! - davidfdr
2个回答

2
你对 Gnome 3.x 存在误解。 系统托盘位于屏幕右下角,并且可以通过提供的代码示例正常工作。因此,"SWT" 位于你应用程序的标题栏中;所显示的菜单是应用程序菜单,并默认插入了退出菜单项。
你的截图显示了桌面的左上角。"SWT" 是使用 SWT 创建的应用程序的默认回退值。在测试时,我惊讶地发现它并不对应于(活动)窗口的标题。我认为这是一个 bug。有关如何确定应用程序标题的技术细节,请参阅此问题(Python 和 PyGTK;一些外部引用):如何在 Gnome Shell 中设置应用程序标题?

https://fabrica.infosolo.com.br/swt_shot3.png 是 GNOME 系统托盘的屏幕截图。我看到 Pentaho Data Integration Spoon(使用 SWT + JFace + Eclipse Forms 构建的 ETL 工具)发生了这种情况。 - davidfdr
1
可能是同一个问题。请在上传之前裁剪屏幕截图。系统托盘 - 不是全分辨率的两个屏幕桌面。 - f4lco

0

我成功地通过以下方式更改了应用程序名称,因此我在KDE系统托盘中看到的文本:

Display.setAppName("Whatever");

就在所有 SWT 代码的上方。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接