java 窗口任务栏图标,强!简洁!SWT实现任务栏图标(系统托盘),带菜单和ToolTip...

1 import org.eclipse.swt.SWT;2 import org.eclipse.swt.events.ShellListener;3 import org.eclipse.swt.graphics.Image;4 import org.eclipse.swt.internal.win32.OS;5 import org.eclipse.swt.widgets.Display;6 import org.eclipse.swt.widgets.Event;7 import org.eclipse.swt.widgets.Listener;8 import org.eclipse.swt.widgets.Menu;9 import org.eclipse.swt.widgets.MenuItem;10 import org.eclipse.swt.widgets.Shell;11 import org.eclipse.swt.widgets.Tray;12 import org.eclipse.swt.widgets.TrayItem;13 14 public class MyTray {15 public staticvoidmain(String[] args) {16 Display display=newDisplay();17 Shell shell=newShell(display);18 //下面两句的效果是:在任务栏不显示19 //感谢CSDN会员:GhostValley(鬼谷)20 finalinthWnd=shell.handle;21 OS.SetWindowLong(hWnd, OS.GWL_EXSTYLE, OS.WS_EX_CAPTIONOKBTN);22 Image image=newImage(display,16,16);23 final Tray tray=display.getSystemTray();24 if(tray==null) {25 System.out.println("The system tray is not available");26 }else{27 final TrayItem item=newTrayItem(tray, SWT.NONE);28 item.setToolTipText("SWT TrayItem");29 item.addListener(SWT.Show,newListener() {30 publicvoidhandleEvent(Event event) {31 System.out.println("show");32 }33 });34 item.addListener(SWT.Hide,newListener() {35 publicvoidhandleEvent(Event event) {36 System.out.println("hide");37 }38 });39 item.addListener(SWT.Selection,newListener() {40 publicvoidhandleEvent(Event event) {41 System.out.println("selection");42 }43 });44 item.addListener(SWT.DefaultSelection,newListener() {45 publicvoidhandleEvent(Event event) {46 System.out.println("default selection");47 //show main48 Shell s=event.display.getShells()[0];49 s.setVisible(true);50 s.setMinimized(false);51 }52 });53 final Menu menu=newMenu(shell, SWT.POP_UP);54 for(inti=0; i<8; i++) {55 MenuItem mi=newMenuItem(menu, SWT.PUSH);56 mi.setText("Item"+i);57 }58 item.addListener(SWT.MenuDetect,newListener() {59 publicvoidhandleEvent(Event event) {60 menu.setVisible(true);61 }62 });63 item.setImage(image);64 }65 shell.addShellListener(newShellListener() {66 publicvoidshellDeactivated(org.eclipse.swt.events.ShellEvent e) {67 }68 69 publicvoidshellActivated(org.eclipse.swt.events.ShellEvent e) {70 }71 72 publicvoidshellClosed(org.eclipse.swt.events.ShellEvent e) {73 }74 75 publicvoidshellDeiconified(org.eclipse.swt.events.ShellEvent e) {76 }77 78 publicvoidshellIconified(org.eclipse.swt.events.ShellEvent e) {79 //最小化时不显示在任务栏80 //感谢CSDN会员:pdvv(我爱花猫)81 ((Shell) e.getSource()).setVisible(false);82 }83 });84 shell.setBounds(50,50,300,200);85 shell.open();86 while(!shell.isDisposed()) {87 if(!display.readAndDispatch())88 display.sleep();89 }90 image.dispose();91 display.dispose();92 }93 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值