SWT How to:添加系統托盤
添加系統托盤的核心code:
final ImageData trayIcon = new ImageData(SWTSystemTray.class.
getResource("/resources/16x16/tray.png").getPath());
final Image trayImage = new Image(display, trayIcon);
/*
* 获得系统托盘并为托盘添加一定的响应时间,如下所示:
* 1.如果窗口存在,则在点击托盘图标的时候窗口会自动隐藏
* 2.如果窗口不存在(即隐藏),则点击托盘图标时窗口会自动显示
* 3.右键菜单Show: 显示窗口
* 4.右键菜单Exit: 退出程序
*/
final Tray tray = display.getSystemTray();
if(null == tray){
logger.warn("OS doesn't support system tray");
} else {
final TrayItem item = new TrayItem(tray, SWT.NONE);
item.setToolTipText("System tray");
final Menu trayMenu = new Menu(shlSystemTray, SWT.POP_UP);
final MenuItem showUI = new MenuItem(trayMenu, SWT.PUSH);
showUI.setText("Show");
showUI.setImage(SWTResourceManager.getImage(SWTSystemTray.class,
"/resources/16x16/show.png"));
showUI.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
shlSystemTray.setVisible(true);
shlSystemTray.setActive();
}
});
final MenuItem exit = new MenuItem(trayMenu, SWT.PUSH);
exit.setText("Exit");
exit.setImage(SWTResourceManager.getImage(SWTSystemTray.class,
"/resources/16x16/exit.png"));
exit.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
trayImage.dispose();
shlSystemTray.dispose();
}
});
item.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
shlSystemTray.setVisible(!shlSystemTray.getVisible());
if(shlSystemTray.getVisible()){
shlSystemTray.setActive();
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
//为系统托盘添加右键菜单
item.addListener(SWT.MenuDetect, new Listener() {
@Override
public void handleEvent(Event event) {
trayMenu.setVisible(true);
}
});
item.setImage(trayImage);
item.setVisible(true);
}
getResource("/resources/16x16/tray.png").getPath());
final Image trayImage = new Image(display, trayIcon);
/*
* 获得系统托盘并为托盘添加一定的响应时间,如下所示:
* 1.如果窗口存在,则在点击托盘图标的时候窗口会自动隐藏
* 2.如果窗口不存在(即隐藏),则点击托盘图标时窗口会自动显示
* 3.右键菜单Show: 显示窗口
* 4.右键菜单Exit: 退出程序
*/
final Tray tray = display.getSystemTray();
if(null == tray){
logger.warn("OS doesn't support system tray");
} else {
final TrayItem item = new TrayItem(tray, SWT.NONE);
item.setToolTipText("System tray");
final Menu trayMenu = new Menu(shlSystemTray, SWT.POP_UP);
final MenuItem showUI = new MenuItem(trayMenu, SWT.PUSH);
showUI.setText("Show");
showUI.setImage(SWTResourceManager.getImage(SWTSystemTray.class,
"/resources/16x16/show.png"));
showUI.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
shlSystemTray.setVisible(true);
shlSystemTray.setActive();
}
});
final MenuItem exit = new MenuItem(trayMenu, SWT.PUSH);
exit.setText("Exit");
exit.setImage(SWTResourceManager.getImage(SWTSystemTray.class,
"/resources/16x16/exit.png"));
exit.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
trayImage.dispose();
shlSystemTray.dispose();
}
});
item.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
shlSystemTray.setVisible(!shlSystemTray.getVisible());
if(shlSystemTray.getVisible()){
shlSystemTray.setActive();
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
//为系统托盘添加右键菜单
item.addListener(SWT.MenuDetect, new Listener() {
@Override
public void handleEvent(Event event) {
trayMenu.setVisible(true);
}
});
item.setImage(trayImage);
item.setVisible(true);
}
如果需要具體的代碼請點擊here