該測試得到了軟體界面縮小或關閉時會彈到系統右下角托盤中,得到提示,右鍵選擇關閉或顯示。
//在createContents(){内添加 createTray();}
public void createTray(){
//泡泡型提示
final ToolTip tip=new ToolTip(shell,SWT.BALLOON | SWT.ICON_INFORMATION);//建立托盤項
sgw=shell.getDisplay().getSystemTray();//确定系統托盤對象
if(sgw!=null){//判斷系統托盤對象是否為空
final TrayItem tt=new TrayItem(sgw,SWT.NONE);//建立托盤項
tt.setToolTipText("sgw的托盤第一次測試!");//托盤提示文字
tt.setImage(new Image(shell.getDisplay(),"D:\\辦公檔案\\eclipse\\mycode\\NewToolBar\\src\\cn\\image\\image\\1.ICO"));
//添加托盤圖示
tt.setToolTip(tip);//為托盤項建立彈出式菜單
final Menu mu=new Menu(shell,SWT.POP_UP);//建立托盤項彈出菜單
final MenuItem mi=new MenuItem(mu,SWT.PUSH);//建立顯示或隐藏菜單項
mi.setText("躲着&H");//設定菜單項文本
mi.addSelectionListener(new SelectionAdapter(){//顯示或隐藏菜單項選擇監聽器
public void widgetSelected(SelectionEvent e){
boolean mf=shell.isVisible();//菜單項是否可見
shell.setVisible(!mf);
mi.setText(mf?"出來&W":"躲着&H");
tip.setText("sgw的托盤圖示");
tip.setMessage("右鍵選擇圖示,可彈出我的選擇菜單");
tip.setVisible(true);
//如果窗體是顯示的,則菜單項為隐藏;如果窗體是隐藏的,則菜單項顯示;
}
});
MenuItem me=new MenuItem(mu,SWT.PUSH);
me.setText("離開&X");
me.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
shell.dispose();
}
});
tt.addSelectionListener(new SelectionAdapter(){
public void widgetDefaultSelected(SelectionEvent arg0){
shell.setVisible(!shell.isVisible());
}
public void widgetSelected(SelectionEvent arg0){
}
});
tt.addMenuDetectListener(new MenuDetectListener(){
public void menuDetected(MenuDetectEvent arg0){
mu.setVisible(true);
}
});
shell.addShellListener(new ShellAdapter(){
public void shellClosed(ShellEvent e){
super.shellClosed(e);
e.doit=false;
shell.setVisible(false);
mi.setText("出來&W");
tip.setText("sgw的托盤圖示");
tip.setMessage("右鍵選擇圖示,可彈出我的選擇菜單");
tip.setVisible(true);
}
public void shellIconified(ShellEvent e){
super.shellIconified(e);
shellClosed(e);
}
});
}
else{
tip.setText("你不支援托盤效果");
tip.setLocation(400,400);
}
}