gnome中的SWT托盘项目

时间:2012-09-12 22:03:34

标签: java swt gnome system-tray gnome-shell

我有关于Gnome Shell中托盘项目显示的问题。

项目图标显示在下方栏中,我很好,就像其他项目一样,当鼠标移到图标上时,会显示一个文本。

我的问题是无法更改此文字:使用.setText设置文字不起作用,该类既不支持任何事件,也支持SelectedMenuDetect检测左侧然后分别右键单击。

有没有人遇到同样的问题?

提前感谢您的回答,

Gianluca

1 个答案:

答案 0 :(得分:0)

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

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()