我们都知道QQ如果有什么重大新闻时会第一时间在右下角弹出一个消息提示框的.而且会有一些动画.实现这个其实并不难,很简单,关键在于它的一些外观,以及鼠标移动等操作.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.lgh.mail.components;
import com.lgh.pic.Pic;
import com.lgh.util.MouseMotionUtil;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPanel;
import javax.swing.JWindow;
/**
*
* @author lgh
*/
public class TipWindow extends JWindow implements Runnable {
private static Dimension dim;
private int x, y;
private int width, height;
{
dim = Toolkit.getDefaultToolkit().getScreenSize();
width = 200;
height = 150;
x = (int) (dim.getWidth() - width);
y = (int) (dim.getHeight());
}
public TipWindow() {
initComponents();
new Thread(this).start();
}
public void run() {
for (int i = 0; i <= height; i += 10) {
try {
this.setLocation(x, y - i);
Thread.sleep(20);
} catch (InterruptedException ex) {
Logger.getLogger(TipWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private void initComponents() {
this.setSize(width, height);
this.setLocation(x, y);
this.setLayout(new BorderLayout());
JPanel tipBar = createTipBar();
new MouseMotionUtil().addMouseMotionListener(this, tipBar);
this.add(tipBar, BorderLayout.NORTH);
this.setVisible(true);
}
/**
* 创建上面的工具条
*/
private JPanel createTipBar() {
TipBar tipBar = new TipBar(Pic.TOP_BAR_BG_MID);
return tipBar;
}
private class TipBar extends MailPanel implements ActionListener {
private MailButton closeButton;
public TipBar(Image bgImage) {
super(bgImage);
initComponents();
}
private void initComponents() {
closeButton = new MailButton(Pic.map.get("mail/buttons/button_close"), new Rectangle(170, 1, 26, 26));
this.setLayout(null);
closeButton.addListenAndCommand(this, "closeButton");
this.add(closeButton);
this.setPreferredSize(new Dimension(width, 26));
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command != null) {
if (command.equals("closeButton")) {
TipWindow.this.dispose();
}
}
}
}
public static void main(String[] args) {
new TipWindow();
}
}
分享到:
相关推荐
//给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息...
//给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息...
import java.util.Calendar; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.DatePickerDialog; import android.app....
QQ界面的聊天系统,服务器端用多线程实现了公共聊天和私人聊天,还可以传送简单的文本文档 说明: 主程序:SFace.java和Face.java 服务器端操作说明: 1、输入本地IP和聊天通信的端口,然后建立服务器; 2、消息...
1.设置一个置项的模拟窗体,窗体标题栏具有标志性QQ图标和标题文字,不可改变大小,初始运行时显示在屏幕中央。 2.使用标签组件显示提示文字(或logo图片)。 3.使用文本框组件提供账号和密码输入域。 4.使用下拉...
书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) ...实例268 设置信息提示对话框的图标 341 实例269 文件选择对话框指定数据库备份文件 342 实例270 指定打开对话框的文件类型 343 ...
可视化 多方通信 好友维护 登录窗口 注册窗口 好友列表 聊天窗口 对话框(登录失败、注册成功、注册失败、确认删除、错误提示等)
1.本项目实现的主要功能有博客园论坛新闻浏览、博客浏览、新闻实时评论、一键下载到离线内容、博客搜索、一键登录、发表博客园站内说说(站内叫“闪存”)、一键分享内容到常用社交平台(由于开放平台的审核限制,仅...
LoadingAlertDialog 普通loading metarial风格的loading 各种显示动画的QQ提示对话框
63. 制作类似QQ的短消息提示? 64. 用jfreechat制作拄、饼、曲线图型? 65. 文本框怎么只容许输入数字? 66. 打开Word和Execl文件? 67. 生成Word 和 Excel文档? 68. JSP如何读取Word内容? 69. 浏览服务器目录/文件? ...
制作类似QQ的短消息提示? 64. 用jfreechat制作拄、饼、曲线图型? 65. 文本框怎么只容许输入数字? 66. 打开Word和Execl文件? 67. 生成Word 和 Excel文档? 68. JSP如何读取Word内容? 69. 浏览...
还有如果不介意的话,请告诉我你的电子邮件地址和你的QQ号码 YB_unique (2001-10-14 22:33:00) 这就是他所说的VRGirl。 VRGirl GUID: {30FDBBE2-A424-11D4-AEB3-00E0295F8599} 59 Animations: ...
sqlcore-驱动版本---选择你刚才的版本, Pack 版本,系统进行处理版本处理,处理完成后弹出打包完成的提示对话框 9.下载驱动 视图分析---》版本视图---》下载该版本 下载你刚才处理的版本 10. 配置sqlcore到你的...
EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件 EXE:可执行文件(程序) F FAV:Microsoft Outlook导航条 FAX:传真类型图像 FCD:虚拟CD-ROM FDF:Adobe Acrobat表单文档文件 FLA:Macromedia...
参数:可定义多个JSON对象数组,示例如下:{qq:{name:'QQ',count:55,width:25,height:25,line:11},msn:{name:'MSN',count:40,width:22,height:22,line:8}} name:表情分组名 count:表情数量 list:表情列表,例...