消息提示框类,包含动画的设置,以及取任务栏高度
TipWindow类由网上找来经过本人修改,现将修改后的小程序发给大家试用,你们可以改的更漂亮更丰富
package test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
/**
*
* @author lgh
*/
public class TipWindow extends JDialog implements Runnable {
private static Dimension dim;
private int x, y;
private int width, height;
private static Insets screenInsets;
public TipWindow(int width,int height){
dim = Toolkit.getDefaultToolkit().getScreenSize();
screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
this.width=width;
this.height=height;
x = (int) (dim.getWidth() - width-3);
y = (int) (dim.getHeight()-screenInsets.bottom-3);
initComponents();
}
/*
* 开启渐入效果
* 开启后3秒,窗口自动渐出
* 若不需要渐出,注释掉,sleep(3000)和close()方法
*/
public void run() {
for (int i = 0; i <= height; i += 10) {
try {
this.setLocation(x, y - i);
Thread.sleep(5);
} catch (InterruptedException ex) {
Logger.getLogger(TipWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
close();
}
private void initComponents() {
this.setSize(width, height);
this.setLocation(x, y);
this.setBackground(Color.black);
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
close();
}
});
}
public void close(){
for (int i = 0; i <= height; i += 10) {
try {
setLocation(x, y-height+i);
Thread.sleep(5);
} catch (InterruptedException ex) {
Logger.getLogger(TipWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
dispose();
}
}
测试类 TipTest
package test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashMap;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/*
* java气泡提示效果
* @author noobjava
* @version 1.0
* @since JDK1.6(建议)
*
*/
public class TipTest extends Thread{
private Map<String,String> feaMap=null;
public TipTest(){
feaMap=new HashMap<String,String>();
feaMap.put("name", "noobjava气泡提醒");
feaMap.put("release", "2010-08-20 11:33:00");
feaMap.put("feature", "1.含动画渐入与渐出效果\n2.3秒后启动动画渐出效果");
super.start();
}
public void run(){
final TipWindow tw=new TipWindow(300,220);
tw.setTitle("noobjava动画气泡提示");
JPanel headPan=new JPanel();
JPanel feaPan=new JPanel(new FlowLayout(FlowLayout.RIGHT));
JPanel btnPan=new JPanel();
JButton update=new JButton("确定");
// feaPan.setBorder(BorderFactory.createMatteBorder(1, 2, 3, 0, Color.gray));
JLabel head=new JLabel(feaMap.get("name")+",含以下功能");
head.setPreferredSize(new Dimension(250,30));
head.setForeground(Color.black);
JTextArea feature=new JTextArea(feaMap.get("feature"));
feature.setEditable(false);
feature.setForeground(Color.red);
feature.setFont(new Font("宋体",Font.PLAIN,13));
// feature.setBackground(Color.ORANGE);
feature.setPreferredSize(new Dimension(280,60));
JScrollPane jfeaPan=new JScrollPane(feature);
jfeaPan.setPreferredSize(new Dimension(283,80));
// jfeaPan.setBorder(null);
jfeaPan.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.gray));
JLabel releaseLabel=new JLabel("发布日期"+feaMap.get("release").substring(0,19));
releaseLabel.setForeground(Color.gray);
feaPan.add(jfeaPan);
feaPan.add(releaseLabel);
headPan.add(head);
btnPan.add(update);
tw.add(headPan,BorderLayout.NORTH);
tw.add(feaPan,BorderLayout.CENTER);
tw.add(btnPan,BorderLayout.SOUTH);
update.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
JOptionPane.showMessageDialog(tw, "点这里干吗?点那个XX关掉嘛");
}
});
tw.setAlwaysOnTop(true);
tw.setResizable(false);
tw.setVisible(true);
tw.run();
}
public static void main(String args[]){
new TipTest();
}
}
分享到:
相关推荐
是一个模仿以前MSN风格的VB 弹出式气泡提示,弹出后显示在屏幕的右下角窗口,可自定义右下角的气泡提示的样式、文字等,右下角窗口渐变色显示,设置窗口功能很多,不一一介绍了,截图只是气泡提示和右下角窗口的效果,...
简易的右下角 冒泡提示窗口
在Swing开发时,有个地方需要实现窗口右下解的浮动窗口效果 必须及时信息提示,新闻预览等。
说明:类似于气泡的弹出动画(根据运用场景设置元素向下对齐,能看出气泡自下向上弹出),弹出之后有来回的缓动效果。 类名:ShuttersAnimation 效果:百叶窗动画 说明:类似于百叶窗的展现动画(一般用于图片...
C#源码 功能打开程序显示右下角气泡提示功能,可以任意编辑提示气泡上的文字及标题信息。打开后可以4秒自动关闭气泡。可以下载或者更改使用。欢迎下载。
Qt实现仿qq右下角浮动弹窗,已封装,把MsgWidget文件夹拷贝到其他项目即可使用;可在多个系统上编译运行,windows、Linux、Mac OS X上测试通过。
网页右下角气泡效果,不是原创 。 博文链接:https://smartzjp.iteye.com/blog/750188
VC6.0下实现系统托盘的气泡提示窗口 VC6.0下实现系统托盘的气泡提示窗口
Android的气泡效果,弹开和收缩动画效果
感兴趣的新同鞋可以自己试试,改改我的代码,用PS做做背景图,可以做出超炫超酷的消息提示框 带淡入淡出效果 附件中的背景图片需放在工程目录下(Eclipse中你自己的Project的目录) jdk1.6以上
几款漂亮的气泡提示框 不知道怎么样 大家参考参考
NULL 博文链接:https://hnicypb.iteye.com/blog/293253
此程序是一个批处理,执行后可在右下角出来一个气泡,可以自定义内容,适合公共场所使用,记得系统里面一定要有自对应的图标 否这会崩溃的,大家切记切记!!!
实现气泡提示窗口,以帮助程序员了解窗口信息
任务栏提示,使用气泡提示。气泡中带图标,可以设置提示时长. 首先需要更新一下VC6.0的SDK,方法如下: 把ShellAPI.h文件中的关于任务栏提示的函数和常量替换为下面的内容,查看说明
MSN气泡提示窗口适应用论坛、OA等系统消息提示,
有效叫弹出消息提示框js代码,可以用作弹出消息提示,也可以用作右下角弹出广告内容,简单易用。
去除烦人而丑陋的对话框 程序安静的从右下角提示信息
pb 调用WINDOW系统自带气泡提示框,带最小化窗口到任务栏,支持右键菜单,纯代码,不需要第三方DLL
VC多系统托盘架气泡提示VC多系统托盘架气泡提示VC多系统托盘架气泡提示解决多系统无气泡问题 特别是用VS2008弄不出托盘气泡的。。。