// Test.java //主界面,其中只有一个button,当点击时调用Popup在右下角显示像MSN和QQ一样的popup界面。
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell;
public class Test {
public static void main(String[] args) {
final Display display = new Display(); Shell shell = new Shell(); shell.setText("aaa"); shell.setSize(250, 150);
final Button button = new Button(shell, SWT.NONE); button.setBounds(50, 20, 100, 25); button.setText("button"); //监听button的事件,当用户点击时调用Popup类显示popup界面。 button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { //实例化popup类,构造函数为popup界面中出现的提示信息。 Popup popup = new Popup("您的好友xxx上线了。"); popup.start(); } });
shell.open();
while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
// Popup.java //实现像MSN,QQ一样的好友上线通知popup
import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text;
public class Popup extends Thread {
Shell shell;
protected int moveStep = 2; //每次移动的pixel protected int upPosition; //能移动到的最上面坐标 protected int downPosition; //当前popup的边框坐标 protected int leftPosition; //popup左边边框坐标 public Popup(final String message) {
shell = new Shell(SWT.ON_TOP); Text text = new Text(shell, SWT.MULTI | SWT.WRAP); text.setBounds(10, 20, 180, 80); text.setBackground(shell.getBackground()); text.setText(message);
//取屏莫大小 Rectangle area = Display.getDefault().getClientArea();
upPosition = area.height - 100;//计算出popup界面在屏幕显示的最高位置 downPosition = area.height + 100;//计算出popup界面的初始位置 leftPosition = area.width - 180;
shell.setSize(180, 100);
//初始化popup位置 shell.setLocation(leftPosition, downPosition);
shell.open();
}
public void run() {
Display display = shell.getDisplay(); while (true) { try { Thread.sleep(10);
//判断当前位置是否小于能出现的最高位置,小于的话就说明还可以向上移动。 if ((downPosition - moveStep) > upPosition) { display.asyncExec(new Runnable() { public void run() { shell.setLocation(leftPosition, downPosition- moveStep); downPosition -= moveStep; } }); //此时已经移动到了最高位置,显示5秒钟后,关闭窗口并退出。 } else { Thread.sleep(5000); display.asyncExec(new Runnable() { public void run() { shell.dispose(); } }); } } catch (InterruptedException e) { e.printStackTrace(); } } } } |
相关推荐
java 设计qq中的好友界面
很多同志在用java做仿QQ聊天程序或者是做聊天程序时,都不自觉得想到了QQ好友列表,可是java中的JTree没有那个功能,又要显示头像又要显示昵称,这个资源不仅可以实现以上功能,而且可以显示个性签名和空间动态等,...
java 实现的qq登陆界面,适合初学java awt和swing的同学学习
QQ好友上线通知提醒介绍.docx
实现QQ的聊天窗口抖动等功能,主要是Java写的,,界面是模仿QQ写的,列表用JMenu写的。。。c/s模式
仿QQ登陆界面java程序设计,能够实现简单的QQ登陆界面设计,包含代码和说明文档
本程序详细描述了编写仿QQ程序时需要的各种元素和注意的问题。
使用java编写实现的仿qq功能,能够很大程度上与现在的qq版本内容相似,能够很好的实现聊天和添加好友注册等功能,内含数据库的代码,希望小伙伴们可以多多支持。
java写的qq登陆界面,只实现了界面,简单的界面制作
基于java实现的模拟qq界面和功能,是我学习java来练练手的,java基础入门的学生可以考虑参考一下.
QQ源码Java实现,代码完整可以运行,代码的分析详见我的博客文章 Java实现QQ,网址http://blog.csdn.net/codehxy/article/details/25309991
Java实现类QQ简易聊天工具,简易界面,主要练习网络编程
资源里面包含两份代码, 一个是像MSN一样的信息提示框 还有一份是仿QQ界面实现
用java实现的一个QQ登录的界面,比较好看,希望能给你带来帮助!多多支持哈!
c# 多消息提示 类似qq消息提示,msn上线通知c# 多消息提示 类似qq消息提示,msn上线通知c# 多消息提示 类似qq消息提示,msn上线通知
Java做的qq登界面,费很大劲才找来的不错的程序啊
java 仿QQ登陆界面 主界面java 仿QQ登陆界面 主界面java 仿QQ登陆界面 主界面 效果可以去我QQ空间看 http://user.qzone.qq.com/309306055/infocenter#!app=2&pos=1337351044
如何利用 Java 实现 QQ 文件传输功能 现在, 通过网络传输文件已经非常普遍, 各种传输工 具也很多, 最具有代表性的就是 QQ 提供的文件传输功能了, 它能让好友之间方便的把自己的文件传给对方。 仔细查看 QQ 的...
用java语言编写的仿QQ登陆后的主界面! 大致实现了可视化效果,但不是很完善! 一些功能做的不是很好! 里面一个是用按钮做的图标,一个是用标签做的图标!
用JAVA实现的简单QQ程序 采用TCP连接技术 可实现简单通信与文件传输