有难度的问题! 请问各位大虾,有没有使java做的程序(它的小图标)像系统时钟那样一直在任务栏(屏幕右下脚)显示,在点击的时候最大化的方法! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 完全可以的,在我的空间里有个叫做Java课程涉及的资源包。里面包含三个程序,其中的文件分割器就使用了系统托盘。不过为了实现起来简单,我采用的是JDK6.0版本。6.0以下版本编译通不过。 说错了,资源名称叫做《文件分割器(Java)》与《Java课程设计报告书》 JDK6.0 里开始支持这个功能。 swt也支持这个功能,大概是从eclipse3.2配合的那个包开始支持的。都是现成的类,去找找。 jdk1.6 没用过。我写过swt下的。import org.eclipse.swt.SWT;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.Tray;import org.eclipse.swt.widgets.TrayItem;public class SysTray { private Tray tray; private Shell theShell; // private TrayItem item ; // private MenuItem quitMenuItem ; private Menu menu; public SysTray(Shell shell, Image image) { theShell = shell; tray = Display.getDefault().getSystemTray(); if (tray == null) { System.out.println("The system tray is not available"); } else { final TrayItem item = new TrayItem(tray, SWT.NORMAL); item.setToolTipText("123123123"); item.addListener(SWT.Show, new Listener() { public void handleEvent(Event event) { System.out.println("show"); } }); item.addListener(SWT.Hide, new Listener() { public void handleEvent(Event event) { System.out.println("hide"); } }); item.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { System.out.println("selection"); } }); item.addListener(SWT.DefaultSelection, new Listener() { public void handleEvent(Event event) { quit(); System.out.println("default selection"); } }); menu = new Menu(shell, SWT.POP_UP); final MenuItem back = new MenuItem(menu, SWT.PUSH); back.setText("返回系统"); back.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { quit(); } }); menu.setDefaultItem(back); final MenuItem quitSys = new MenuItem(menu, SWT.PUSH); quitSys.setText("退出系统"); quitSys.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { Workbench.getInstance().quit(); } }); final MenuItem separator = new MenuItem(menu, SWT.SEPARATOR); for (int i = 0; i < 5; i++) { MenuItem mi = new MenuItem(menu, SWT.PUSH); mi.setText("Item" + i); mi.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { System.out.println("selection " + event.widget); } }); } item.addListener(SWT.MenuDetect, new Listener() { public void handleEvent(Event event) { menu.setVisible(true); } }); item.setImage(image); image.dispose(); } } private void quit() { theShell.setVisible(true); tray.dispose(); menu.dispose(); tray = null; } public Menu getTrayMenu() { return menu; }} java实现系统托盘 http://systray.sourceforge.net/ 正则表达式匹配注释对,怎么弄 关于java中数组长度的疑问 多线程中Callable/Future的疑问 想写个程序让6个图片在窗口中移动 java应用程序中使用odbc数据源连接数据库,如何获取已经定义的odbc数据源的用户名和密码? 如何在网络上传送二进制流 如何将用ejb从数据库中查询出来的数据保存到excel表格中? inputstream.read()方法是阻塞调用吗?那么有没有不阻塞的方法? 在eclipse下JAVA自动拆装箱的问题 GC(结贴最快且结贴率为100%) java.lang.NoClassDefFoundError Java的反射机制!!Java高手请进!
都是现成的类,去找找。
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.Tray;
import org.eclipse.swt.widgets.TrayItem;public class SysTray { private Tray tray; private Shell theShell; // private TrayItem item ;
// private MenuItem quitMenuItem ;
private Menu menu; public SysTray(Shell shell, Image image) {
theShell = shell;
tray = Display.getDefault().getSystemTray(); if (tray == null) {
System.out.println("The system tray is not available");
} else {
final TrayItem item = new TrayItem(tray, SWT.NORMAL); item.setToolTipText("123123123"); item.addListener(SWT.Show, new Listener() {
public void handleEvent(Event event) {
System.out.println("show");
}
});
item.addListener(SWT.Hide, new Listener() {
public void handleEvent(Event event) {
System.out.println("hide");
}
});
item.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
System.out.println("selection");
}
});
item.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event event) {
quit();
System.out.println("default selection");
}
}); menu = new Menu(shell, SWT.POP_UP);
final MenuItem back = new MenuItem(menu, SWT.PUSH);
back.setText("返回系统"); back.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
quit();
}
});
menu.setDefaultItem(back); final MenuItem quitSys = new MenuItem(menu, SWT.PUSH);
quitSys.setText("退出系统"); quitSys.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
Workbench.getInstance().quit();
}
}); final MenuItem separator = new MenuItem(menu, SWT.SEPARATOR); for (int i = 0; i < 5; i++) {
MenuItem mi = new MenuItem(menu, SWT.PUSH);
mi.setText("Item" + i);
mi.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) { System.out.println("selection " + event.widget);
}
}); } item.addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event event) {
menu.setVisible(true);
}
});
item.setImage(image);
image.dispose();
}
} private void quit() { theShell.setVisible(true);
tray.dispose();
menu.dispose();
tray = null;
} public Menu getTrayMenu() { return menu; }}