?? tray1.java
字號:
package cn.com.chengang.swt;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolTip;
import org.eclipse.swt.widgets.Tray;
import org.eclipse.swt.widgets.TrayItem;
public class Tray1 {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
// ---------創建窗口中的其他界面組件-------------
final ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION);// 泡泡型提示
final Tray tray = shell.getDisplay().getSystemTray();// 取得系統托盤對象
if (tray != null) {
final TrayItem item = new TrayItem(tray, SWT.NONE);// 創建托盤對象
item.setToolTipText("QQ");// 托盤提示文字
item.setImage(new Image(display, "icons/star.jpg"));// 托盤圖標
item.setToolTip(tip);
// 生成菜單項,右鍵單擊托盤圖標時顯示
final Menu menu = new Menu(shell, SWT.POP_UP);
final MenuItem showMenu = new MenuItem(menu, SWT.PUSH);
showMenu.setText("&Hide");
showMenu.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
boolean showFlag = shell.isVisible();
shell.setVisible(!showFlag);
showMenu.setText(showFlag ? "S&how" : "&Hide");
tip.setText("QQ的托盤圖標");
tip.setMessage("右鍵單擊圖標,\n可以選擇菜單");
tip.setVisible(true);
}
});
MenuItem exitMenu = new MenuItem(menu, SWT.PUSH);
exitMenu.setText("E&xit");
exitMenu.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
System.exit(0);
}
});
// 為托盤添加事件
item.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
System.out.println("鼠標單擊");
}
});
item.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event e) {
System.out.println("鼠標雙擊");
}
});
item.addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event e) {
menu.setVisible(true);// 右鍵點擊圖標時,顯示菜單
}
});
// 效果:關閉窗口時最小化到托盤
shell.addShellListener(new ShellAdapter() {
public void shellClosed(ShellEvent e) {
e.doit = false; // 使窗口的關閉按鈕無效
shell.setVisible(false);
showMenu.setText("S&how");
tip.setText("QQ的托盤圖標");
tip.setMessage("右鍵單擊圖標,\n可以選擇菜單");
tip.setVisible(true);
}
});
} else {
tip.setText("該系統不支持托盤效果");
tip.setLocation(400, 400);
}
// -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -