站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题用SWT做类似QQ的窗口。

用SWT做类似QQ的窗口。

摘要: 用SWT做类似QQ的窗口。


我想用用SWT做类似QQ的窗口,可以最小化到右边的任务框中,如果满足一定的条件,还可以弹出提示框。大家给点意见要看哪方面的书?也可以直接给我一个example?先谢过了。


这里有个 SWT/JFace 制作托盘程序的例子。可以参考一下
(转自:http://blog.csdn.net/ema100/archive/2006/05/10/721060.aspx)


一些桌面应用程序会在系统的工具条上显示一个图标,即使程序最小化了,也可以供用户方便地操作程序。以前使用Swing来制做这个功能的时候费了不小的力气,使用了JNI来完成这个功能(JNI:Java Native Interface Java本地编程接口,可以通过调用汇编或C或C++程序来完成某些功能)。自从Eclipse推出之后,swt就占据了java开发桌面应用的大部分份额,其中最大的优点就是swt为我们提供了与操作系统交互的接口(其实,swt内容的实现机制就是通过JNI来实现的)。下面是今天完成的系统托盘的例子。

程序代码

// 取得系统托盘对象
final Tray tray = shell.getDisplay().getSystemTray();
if (tray != null) {
// 生成托盘对象
final TrayItem item = new TrayItem(tray, SWT.NONE);
// 为托盘对象添加鼠标停留时的文字
item.setToolTipText(“六月天”);
// 为托盘添加事件
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) {
System.out.println("default selection");
}
});
// 为托盘对象添加显示用的图标
item.setImage(image);
// 生成菜单项
final Menu menu = new Menu(shell, SWT.POP_UP);
MenuItem miShow = new MenuItem(menu, SWT.PUSH);
miShow.setText("S&how");

miShow.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent arg0) {
shell.setVisible(true);
shell.setMaximized(true);
}

public void widgetDefaultSelected(SelectionEvent arg0) {
}
});

MenuItem miExit = new MenuItem(menu, SWT.PUSH);
miExit.setText("E&xit");

miExit.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent arg0) {
exitAction.run();
}

public void widgetDefaultSelected(SelectionEvent arg0) {
}
});

// 为托盘对象添加事件,当右键点击图标时,显示菜单
item.addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event event) {
menu.setVisible(true);
}
});
}


总结:swt/jface为java程序员提供了快速反映的界面,由于swt/jface本身也是利用JNI来调用系统的界面,所以在实现界面的同时也为程序员提供了一些与操作系统交互的方法。利用这些方法,可以很方便快捷地完成我们的功能。

Eclipse的Forms也非常不错,提供了华丽的界面,写出来的程序就如同网页一样,当然要有一定的审美眼光,有兴趣的朋友不仿研究研究。




这个例子我试了一下,怎么鼠标移到图标上的时候,就不见掉了?


建议你去看看LumaQQ的源码!


对,可以研究LumaQQ


谢谢各位了。


↑返回目录
前一篇: 从.net 如何转换到Java用什么工具较好!
后一篇: 急啊,马上给分!在Struts+Spring+Hibernate下,怎么从本地读一个图片存在服务器的 BLOB字段里?(二进制?)