我在Gnome Shell中显示托盘项目时遇到问题。

项目图标显示在下部栏中,我对此表示满意,并且与其他图标一样,将鼠标移到该图标上时,将显示一个文本。

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

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

预先感谢您的回答,

詹卢卡

最佳答案

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

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 - 侏儒中的SWT托盘物品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12396763/

10-10 07:43