java SWT界面的托盘显示

发表于:2013-8-08 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wintersweetzeng    来源:51Testing软件测试网采编

  //点击关闭或者最小化时程序不会退出而是显示到托盘中    当然也可以是显示在任务栏中的

  public class TrayApp {

  public static void main(String[] args) {

  Display display = new Display();

  final Shell shell = new Shell(display);

  shell.setText("最小化到系統托盤");

  //取消系統中預設的圖標,預設圖標在托盤不能顯示

  shell.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

  //構建系統托盤

  final Tray tray = display.getSystemTray();

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

  //設置在托盤中顯示的程序圖標

  trayItem.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

  //程序啟動時,窗口是顯示的,所以托盤圖標隱藏

trayItem.setVisible(false);
trayItem.setToolTipText(shell.getText());
trayItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
toggleDisplay(shell, tray);
}
});
final Menu trayMenu = new Menu(shell, SWT.POP_UP);
MenuItem showMenuItem = new MenuItem(trayMenu, SWT.PUSH);
showMenuItem.setText("顯示窗口(&s)");

  //顯示窗口,并隱藏托盤圖標

showMenuItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
toggleDisplay(shell, tray);
}
});
trayMenu.setDefaultItem(showMenuItem);
new MenuItem(trayMenu, SWT.SEPARATOR);

  //托盤中的退出菜單,程式只能通過這個菜單退出

MenuItem exitMenuItem = new MenuItem(trayMenu, SWT.PUSH);
exitMenuItem.setText("退出程式(&x)");
exitMenuItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
shell.dispose();
}
});

  //在托盤圖標點擊鼠標右鍵時的事件,彈出系統菜單

trayItem.addMenuDetectListener(new MenuDetectListener() {
public void menuDetected(MenuDetectEvent e) {
trayMenu.setVisible(true);
}
});

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号