SWT實現系統托盤效果

openkk 12年前發布 | 2K 次閱讀 JQuery Lightbox

package lpp;

import org.eclipse.swt.*;

import org.eclipse.swt.graphics.*;

import org.eclipse.swt.layout.FillLayout;

import org.eclipse.swt.widgets.*;

public class TrayBySwt {

public static void main(String[] args) {

    Display display = new Display();

    final Shell shell = new Shell(display);

    shell.setText("系統托盤BySwt");

    shell.setLayout(new FillLayout());

    Button button = new Button(shell, SWT.PUSH);

    button.setText("隱藏窗口顯示托盤圖標");

    ImageData imageData = new ImageData(
            "E:\\workspace\\myeclipse66\\ra\\Tray\\src\\16.gif");

    Image image = new Image(display, imageData);

    // 取得系統托盤

    final Tray tray = display.getSystemTray();

    if (tray == null) {

        System.out.println("當前操作系統不支持托盤圖標");

    } else {

        final TrayItem item = new TrayItem(tray, SWT.NONE);

        item.setToolTipText("我是托盤圖標");

        item.addListener(SWT.Show, new Listener() {

            public void handleEvent(Event event) {

                System.out.println("show");

            }

        });

        item.addListener(SWT.Hide, new Listener() {

            public void handleEvent(Event event) {

                System.out.println("hide");

            }

        });

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

            public void handleEvent(Event event) {

                System.out.println("selection");

            }

        });

        final Menu menu = new Menu(shell, SWT.POP_UP);

        for (int i = 0; i < 8; i++) {

            MenuItem mi = new MenuItem(menu, SWT.PUSH);

            mi.setText("Item" + i);

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

                public void handleEvent(Event event) {

                    System.out.println("selection " + event.widget);

                }

            });

            if (i == 0)
                menu.setDefaultItem(mi);

        }

        item.addListener(SWT.MenuDetect, new Listener() {

            public void handleEvent(Event event) {

                menu.setVisible(true);

            }

        });

        item.addListener(SWT.DefaultSelection, new Listener() {

            public void handleEvent(Event event) {

                shell.setVisible(true);

                item.setVisible(false);

            }

        });

        item.setImage(image);

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

            public void handleEvent(Event event) {

                shell.setVisible(false);

                item.setVisible(true);

            }

        });

        item.setVisible(false);

    }

    shell.setBounds(50, 50, 300, 200);

    shell.open();

    while (!shell.isDisposed()) {

        if (!display.readAndDispatch())

            display.sleep();

    }

    image.dispose();

    display.dispose();

}

}</pre>

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!