【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了: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();
}
}