`
行者买刀
  • 浏览: 191635 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

java实现像QQ新闻消息提示对话框

    博客分类:
  • J2SE
阅读更多

 我们都知道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();
    }
}

  

分享到:
评论
1 楼 sulifeng 2010-04-12  
com.lgh是什么包?....搜不到诶..

相关推荐

    JAVA上百实例源码以及开源项目源代码

     //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener  在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息...

    JAVA上百实例源码以及开源项目

     //给客户发一个感谢消息,消息驱动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....

    java 多线程聊天系统

    QQ界面的聊天系统,服务器端用多线程实现了公共聊天和私人聊天,还可以传送简单的文本文档 说明: 主程序:SFace.java和Face.java 服务器端操作说明: 1、输入本地IP和聊天通信的端口,然后建立服务器; 2、消息...

    Java GUI编程.docx

    1.设置一个置项的模拟窗体,窗体标题栏具有标志性QQ图标和标题文字,不可改变大小,初始运行时显示在屏幕中央。 2.使用标签组件显示提示文字(或logo图片)。 3.使用文本框组件提供账号和密码输入域。 4.使用下拉...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) ...实例268 设置信息提示对话框的图标 341 实例269 文件选择对话框指定数据库备份文件 342 实例270 指定打开对话框的文件类型 343 ...

    QQ聊天界面

    可视化 多方通信 好友维护 登录窗口 注册窗口 好友列表 聊天窗口 对话框(登录失败、注册成功、注册失败、确认删除、错误提示等)

    博客园网站系统.zip

    1.本项目实现的主要功能有博客园论坛新闻浏览、博客浏览、新闻实时评论、一键下载到离线内容、博客搜索、一键登录、发表博客园站内说说(站内叫“闪存”)、一键分享内容到常用社交平台(由于开放平台的审核限制,仅...

    LoadingAlertDialog

    LoadingAlertDialog 普通loading metarial风格的loading 各种显示动画的QQ提示对话框

    JSP实用技巧集合,jsp编程的一些小技巧总结

    63. 制作类似QQ的短消息提示? 64. 用jfreechat制作拄、饼、曲线图型? 65. 文本框怎么只容许输入数字? 66. 打开Word和Execl文件? 67. 生成Word 和 Excel文档? 68. JSP如何读取Word内容? 69. 浏览服务器目录/文件? ...

    jsp编程技巧集锦

    制作类似QQ的短消息提示? 64. 用jfreechat制作拄、饼、曲线图型? 65. 文本框怎么只容许输入数字? 66. 打开Word和Execl文件? 67. 生成Word 和 Excel文档? 68. JSP如何读取Word内容? 69. 浏览...

    实现类似Office助手的小精灵

    还有如果不介意的话,请告诉我你的电子邮件地址和你的QQ号码 YB_unique (2001-10-14 22:33:00) 这就是他所说的VRGirl。 VRGirl GUID: {30FDBBE2-A424-11D4-AEB3-00E0295F8599} 59 Animations: ...

    sqlcore数据库防注入分析系统

    sqlcore-驱动版本---选择你刚才的版本, Pack 版本,系统进行处理版本处理,处理完成后弹出打包完成的提示对话框 9.下载驱动 视图分析---》版本视图---》下载该版本 下载你刚才处理的版本 10. 配置sqlcore到你的...

    网管教程 从入门到精通软件篇.txt

    EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件 EXE:可执行文件(程序) F FAV:Microsoft Outlook导航条 FAX:传真类型图像 FCD:虚拟CD-ROM FDF:Adobe Acrobat表单文档文件 FLA:Macromedia...

    xheditor-1.1.14

    参数:可定义多个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:表情列表,例...

Global site tag (gtag.js) - Google Analytics