// 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实现类MSN、QQ好友上线通知界面相关推荐

  1. java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...

    第一步 先根据当前日期时间 计算出本周的开始时间与结束日期 第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期, 就把本周开始日期当做条件计算出当前日期是第几周 // 周跨月也 ...

  2. QQ好友自定义头像不更新的解决办法(转)

    QQ好友自定义头像不更新的解决办法(转) 最近常有好友问QQ上的好友改了自定义头像后怎么更新不了.今天,笔者也遇到了同样的情况,在改了自定义头像后,好友列表中的自己的图像就是不能自动更新且更新好友资料 ...

  3. 如何判断对方列表里是不是好友_对方QQ是否把我删了不确定是否还在他的好友列表里...

    有时候一些好久没联系的好友,不确定你是否还存在他的QQ里,又不想问,那么小编教你办法简单的识别自己是否还存在好友的列表里. 方法一 1.鼠标右击你的好友,选择删除好友. 2.在跳出的窗口,切记一定要把 ...

  4. QQ显好友IP地址插件2018版:支持最新版的QQ

    NtrQQ是一款功能强大的QQ辅助增强插件,主要功能为QQ显IP和QQ去广告,为了应大家的需求,增加了一系列强悍的功能,但是从本质上,NtrQQ就是一款传统的QQ显IP插件. 此QQ显示ip插件特点: ...

  5. qq私聊顺序回复_QQ更新!这些新功能,一个比一个好用

    哎呦,小雷早上起来发现QQ居然开启新版本内测了. 微信和QQ,虽然同样是鹅厂下面的IM软件,但两个的路线完全不相同. 微信咱们都知道什么尿性了,一副「你吐槽归你吐槽,我改算我输」的样子.咱们想要的功能 ...

  6. java通讯课程_Java项目实战-仿QQ即时通讯软件视频课程

    1.学习JAVA的Swing做UI设计, 2学习用JAVA语言进行数据库编程,熟练使用Connection,Statement,PreparedStatement,ResultSet等数据库类库: 3 ...

  7. 寻仙手游维护公告服务器停服更新,寻仙手游新服更新内容汇总 新坐骑黑鸾幽煌上线...

    寻仙手游新服更新内容汇总 新坐骑黑鸾幽煌上线,新服更新中加入了新坐骑兑换活动,有黑鸾幽煌坐骑兑换活动和上品坐骑清灵幻鹿,预计11月3日苹果版本可以全面更新了.我们将于11月03日(周五)凌晨进行停服更 ...

  8. java调试宝塔api_宝塔面板API接口配置文件

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段.编程之家小编现在分享给大家,也给大家做个参考. 我们在使用宝塔面板的的时候,如果需要用 PHP 来操作一些 API 接口,那么肯定需要知道一 ...

  9. python微信好友检测_用Python调教微信,实现自动回复 和 微信好友分布,好友性别图,好友标签...

    官方华丽的术语---略 一个自动回复机器人 微信自上线以来,一直没有自动回复的功能,想必是有他们的理念.但是有些人群,确实对此功能有一定需求,我举两个栗子: 不愿时刻被消息打扰的人 消息需要批量处理的 ...

最新文章

  1. android高德地图显示多点标记,高德地图多点标记自定义地图
  2. WebView你真的熟悉吗?看了才知道
  3. 【深度学习】图像自动处理工具SimpleITK的使用(Python)
  4. RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
  5. “杨振宁理论物理研究所”
  6. JavaScript基础 -- js常用内置方法和对象
  7. Centos7查看网络配置
  8. Serverless 应用如何管理日志 持久化数据
  9. virtual 修饰符与继承对析构函数的影响(C++)
  10. 在fedora linux中,wine 成功安装手记
  11. 用python解决约瑟夫环
  12. 设计模式 六大法则
  13. Linux chmod 命令 设置权限
  14. win10安装solidworks2016注册机闪退的问题
  15. linux系统双网卡不能同时启动,针对RHEL中双网卡IP不能同时被访问的解决方法
  16. PyTorch 公开发布五周年;NGINX 之父 Igor Sysoev 从 F5 离职;Openfire 4.7.0 发布 | 开源日报
  17. Windows的hosts文件所在位置
  18. python将txt转为字符串_Python玩转《生僻字》
  19. Linux系统安装字体。在代码中生成图片时中文乱码
  20. 华南X99主板安装ESXi7.0或ESXi8.0的配置说明

热门文章

  1. 「IRC / freenode」- 昵称注册(学习笔记) @20210216
  2. shell编程第三讲
  3. 怎么样培训小学生的计算机思维,如何培养小学生数学的计算思维
  4. ADAM4050 7DI 8DO 的使用
  5. dell linux raid 查看,HP_DELL RAID卡查看工具介绍
  6. 超酷的 CSS3 loading 预加载动画特效
  7. golang协程实战之抓取豆瓣电影top数据
  8. vue vant上拉加载 下拉刷新
  9. getParameter的用法说明
  10. Transformer原理详解