我们都知道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();
}
}
分享到:
相关推荐
在Java编程环境中,实现桌面右下角弹窗的效果可以用于创建类似QQ消息提示的功能,给用户提供即时信息反馈。本文将详细讲解如何通过Java实现这一功能,并着重解析`main.java`和`InfoUtil.java`这两个文件中的关键知识...
在Java编程中,实现类似QQ弹出提示框的效果,通常涉及到图形用户界面(GUI)的设计。QQ的弹出提示框是一种轻量级的对话框,它可以在用户与应用程序交互时提供临时信息,而不中断主窗口的工作流程。这种功能在很多...
【Java版仿QQ】是一个基于Java技术实现的简易聊天应用程序,它综合运用了Java的多线程、IO流、网络编程、图形用户界面(GUI)以及集合等核心知识。这个项目旨在提供一个基础的在线聊天环境,支持一对一的单独聊天和...
在提供的压缩包文件中,"qqdlg"可能是一个与QQ对话框相关的文件,它可能包含了实现QQ风格提示消息和对话框的代码。"Micq"可能是MicroQQ的缩写,这是一个模仿QQ功能的开源项目,可能会提供有关如何实现QQ特性的一些...
在Android应用开发中,创建一个类似QQ的退出对话框是一个常见的需求,这通常涉及到自定义对话框(AlertDialog)的设计和实现。以下将详细介绍如何在Android中实现这一功能,并结合"Android_MyDialog"这个文件名,...
在Java Swing版QQ中,开发者可能使用了JFrame作为主窗口,JLabel和JTextArea来显示信息,JButton用于交互,JOptionPane来进行对话框提示,以及可能用到的其他组件如JList(联系人列表)和JTextField(输入框)。...
在本文中,我们将深入探讨如何使用Java编程语言设计一个仿QQ登录界面的程序。QQ作为中国最流行的即时通讯软件之一,其用户界面设计简洁而直观,因此,学习如何仿制其登录界面对于Java开发者来说是一个很好的实践项目...
在Java版QQ源码中,Swing被用来设计和实现各种对话框、窗口以及聊天界面。 1. 登录模块:用户通过输入用户名和密码进行登录。源码中,这一部分可能包含了JFrame(主窗口)、JTextField(文本输入框)和JButton...
QQ_Java.zip是一个包含Java源代码的压缩包,主要用于实现一个基于Java的即时通讯软件,类似于QQ的功能。这个项目提供了全面的学习资源,帮助开发者了解如何使用Java进行即时通讯应用的开发。下面将对这个项目中的...
项目标签"java_qq_login"和"qq_login_java"明确了项目的核心技术——使用Java进行QQ登录界面的实现。这意味着开发者可能使用了Java的事件监听机制,例如ActionListener,来处理按钮点击事件,触发登录验证逻辑。登录...
2. **图形用户接口(GUI)编程**:在实现UI设计时,通常会使用GUI编程工具或库,如Java的Swing或JavaFX,Python的Tkinter,或是C#的WPF。这些工具提供了构建窗口、按钮、文本框等组件的能力,并允许开发者通过代码...
Java GUI组件可以用来构建这个界面,比如使用JList展示联系人,JTextArea显示聊天记录,JOptionPane用于弹出对话框提示用户输入消息。聊天功能涉及网络套接字编程,通过TCP/IP协议进行数据传输,实现客户端与服务器...
它借鉴了腾讯QQ的经典设计思路和技术实现方式,通过使用Java标准库中的图形用户界面组件(Swing)与网络通信模块,实现了基本的即时通讯功能。 #### 二、主要技术栈 1. **Java SE**:项目的核心编程语言。 2. **...
综上所述,开发JavaQQ涉及到了Java GUI编程的多个核心知识点,包括Swing组件的使用、AWT的基础、事件处理、多线程、网络通信以及文件I/O。通过实践这些技术,你可以构建出一个功能完善的桌面版即时通讯应用。
在Java中创建一个QQ登录界面涉及到图形用户界面(GUI)的设计与实现。本例通过`javax.swing`包中的组件来构建界面,如`JFrame`、`JLabel`、`JTextField`等。 #### 1.1 JFrame类的应用 `JFrame`是Swing框架中用于...
9. **游戏结束条件**:当蛇碰到边界或者自己的身体时,游戏结束,可以弹出对话框提示玩家游戏结束,并显示最终得分。 在实现过程中,还需要注意代码的模块化和可读性,合理使用类和方法将各个功能模块化,以便于...
在"FEIQQ"这个项目中,开发者可能已经实现了上述的部分或全部功能,通过解压并分析源代码,我们可以更深入地学习到如何利用Java Swing来创建一个类似QQ的应用程序,同时也能了解到Swing在实际项目中的应用技巧和最佳...
此外,Swing还提供了JOptionPane和JDialog来创建对话框,如登录验证、消息提示等。图标和图片的显示则可以通过 ImageIcon 类完成。为了实现更加美观的界面,还可以使用JLayeredPane和AlphaComposite来实现透明效果,...
如果验证失败,则弹出警告对话框提示用户。 此外,考虑到“组成功能”,可能还包含了其他辅助功能,如记住密码、自动填充、显示/隐藏密码等。这些功能可以通过设置JCheckBox、JRadioButton或使用JPasswordField的`...
1. **源代码**:包含Java或Kotlin语言编写的类和方法,实现对话框的创建、显示和管理逻辑。 2. **资源文件**:如XML布局文件,定义了对话框的视图结构和样式,包括颜色、字体、图像等元素。 3. **示例应用**:一个...