- 浏览: 224327 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
xiaoxiaowuxian1:
终于找到了,感谢~
大话设计模式(带目录完整版)PDF -
jiaoronggui:
一键安装,很方便
BitNami Redmine Stack -
s21109:
不错 很详细
java文件复制 -
ryanflyer:
白下了半天,无法使用
大话设计模式(带目录完整版)PDF -
xbgd:
sunwang810812 写道根本不能用啊用7z解压试试
大话设计模式(带目录完整版)PDF
效果超炫,看附件截图
package monitor.ico; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.Insets; import java.awt.Rectangle; import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JWindow; import javax.swing.border.EtchedBorder; public class ToolTip { // 气泡提示宽 private int _width = 300; // 气泡提示高 private int _height = 100; // 设定循环的步长 private int _step = 30; // 每步时间 private int _stepTime = 30; // 显示时间 private int _displayTime = 6000; // 目前申请的气泡提示数量 private int _countOfToolTip = 0; // 当前最大气泡数 private int _maxToolTip = 0; // 在屏幕上显示的最大气泡提示数量 private int _maxToolTipSceen; // 字体 private Font _font; // 边框颜色 private Color _bgColor; // 背景颜色 private Color _border; // 消息颜色 private Color _messageColor; // 差值设定 int _gap; // 是否要求至顶(jre1.5以上版本方可执行) boolean _useTop = true; /** * 构造函数,初始化默认气泡提示设置 * */ public ToolTip() { // 设定字体 _font = new Font("宋体", 0, 12); // 设定边框颜色 _bgColor = new Color(255, 255, 225); _border = Color.BLACK; _messageColor = Color.BLACK; _useTop = true; // 通过调用方法,强制获知是否支持自动窗体置顶 try { JWindow.class.getMethod("setAlwaysOnTop", new Class[] { Boolean.class }); } catch (Exception e) { _useTop = false; } } /** * 重构JWindow用于显示单一气泡提示框 * */ class ToolTipSingle extends JWindow { private static final long serialVersionUID = 1L; private JLabel _iconLabel = new JLabel(); private JTextArea _message = new JTextArea(); public ToolTipSingle() { initComponents(); } private void initComponents() { setSize(_width, _height); _message.setFont(getMessageFont()); JPanel externalPanel = new JPanel(new BorderLayout(1, 1)); externalPanel.setBackground(_bgColor); // 通过设定水平与垂直差值获得内部面板 JPanel innerPanel = new JPanel(new BorderLayout(getGap(), getGap())); innerPanel.setBackground(_bgColor); _message.setBackground(_bgColor); _message.setMargin(new Insets(4, 4, 4, 4)); _message.setLineWrap(true); _message.setWrapStyleWord(true); // 创建具有指定高亮和阴影颜色的阴刻浮雕化边框 EtchedBorder etchedBorder = (EtchedBorder) BorderFactory .createEtchedBorder(); // 设定外部面板内容边框为风化效果 externalPanel.setBorder(etchedBorder); // 加载内部面板 externalPanel.add(innerPanel); _message.setForeground(getMessageColor()); innerPanel.add(_iconLabel, BorderLayout.WEST); innerPanel.add(_message, BorderLayout.CENTER); getContentPane().add(externalPanel); } /** * 动画开始 * */ public void animate() { new Animation(this).start(); } } /** * 此类处则动画处理 * */ class Animation extends Thread { ToolTipSingle _single; public Animation(ToolTipSingle single) { this._single = single; } /** * 调用动画效果,移动窗体坐标 * * @param posx * @param startY * @param endY * @throws InterruptedException */ private void animateVertically(int posx, int startY, int endY) throws InterruptedException { _single.setLocation(posx, startY); if (endY < startY) { for (int i = startY; i > endY; i -= _step) { _single.setLocation(posx, i); Thread.sleep(_stepTime); } } else { for (int i = startY; i < endY; i += _step) { _single.setLocation(posx, i); Thread.sleep(_stepTime); } } _single.setLocation(posx, endY); } /** * 开始动画处理 */ public void run() { try { boolean animate = true; GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); Rectangle screenRect = ge.getMaximumWindowBounds(); int screenHeight = (int) screenRect.height; int startYPosition; int stopYPosition; if (screenRect.y > 0) { animate = false; } _maxToolTipSceen = screenHeight / _height; int posx = (int) screenRect.width - _width - 1; _single.setLocation(posx, screenHeight); _single.setVisible(true); if (_useTop) { _single.setAlwaysOnTop(true); } if (animate) { startYPosition = screenHeight; stopYPosition = startYPosition - _height - 1; if (_countOfToolTip > 0) { stopYPosition = stopYPosition - (_maxToolTip % _maxToolTipSceen * _height); } else { _maxToolTip = 0; } } else { startYPosition = screenRect.y - _height; stopYPosition = screenRect.y; if (_countOfToolTip > 0) { stopYPosition = stopYPosition + (_maxToolTip % _maxToolTipSceen * _height); } else { _maxToolTip = 0; } } _countOfToolTip++; _maxToolTip++; animateVertically(posx, startYPosition, stopYPosition); Thread.sleep(_displayTime); animateVertically(posx, stopYPosition, startYPosition); _countOfToolTip--; _single.setVisible(false); _single.dispose(); } catch (Exception e) { throw new RuntimeException(e); } } } /** * 设定显示的图片及信息 * * @param icon * @param msg */ public void setToolTip(Icon icon, String msg) { try { // 多个文件变化时,每个间隔2秒 Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } ToolTipSingle single = new ToolTipSingle(); if (icon != null) { single._iconLabel.setIcon(icon); } single._message.setText(msg); single.animate(); } /** * 设定显示的信息 * * @param msg */ public void setToolTip(String msg) { setToolTip(null, msg); } /** * 获得当前消息字体 * * @return */ public Font getMessageFont() { return _font; } /** * 设置当前消息字体 * * @param font */ public void setMessageFont(Font font) { _font = font; } /** * 获得边框颜色 * * @return */ public Color getBorderColor() { return _border; } /** * 设置边框颜色 * * @param _bgColor */ public void setBorderColor(Color borderColor) { this._border = borderColor; } /** * 获得显示时间 * * @return */ public int getDisplayTime() { return _displayTime; } /** * 设置显示时间 * * @param displayTime */ public void setDisplayTime(int displayTime) { this._displayTime = displayTime; } /** * 获得差值 * * @return */ public int getGap() { return _gap; } /** * 设定差值 * * @param gap */ public void setGap(int gap) { this._gap = gap; } /** * 获得信息颜色 * * @return */ public Color getMessageColor() { return _messageColor; } /** * 设定信息颜色 * * @param messageColor */ public void setMessageColor(Color messageColor) { this._messageColor = messageColor; } /** * 获得循环步长 * * @return */ public int getStep() { return _step; } /** * 设定循环步长 * * @param _step */ public void setStep(int _step) { this._step = _step; } public int getStepTime() { return _stepTime; } public void setStepTime(int _stepTime) { this._stepTime = _stepTime; } public Color getBackgroundColor() { return _bgColor; } public void setBackgroundColor(Color bgColor) { this._bgColor = bgColor; } public int getHeight() { return _height; } public void setHeight(int height) { this._height = height; } public int getWidth() { return _width; } public void setWidth(int width) { this._width = width; } public static void main(String[] args) { ToolTip tip = new ToolTip(); tip.setToolTip(new ImageIcon("F:\\a.jpg"),"我就是一农民 ---xbgd"); } }
发表评论
-
WindowBuilder Pro
2011-06-26 22:14 2127http://www.eclipse.org/windowbu ... -
GUI框架
2011-04-26 22:55 873http://tikeswing.sourceforge.ne ... -
Java中用线程实现带有滚动效果的Label标签
2011-04-17 22:19 1554import java.awt.Graphics; impo ... -
Java Swing 进度条
2010-07-31 21:37 2116注:不是自己写的,转的。 参数Thread 就是做耗时任务的 ... -
Swing开发之JProgressBar篇
2010-07-31 21:31 16304JProgressBar是一个简单的 ... -
禁用swing窗体右上角关闭按钮
2010-06-29 22:05 1723其实还可以通过评比关闭按钮的事件来达到该效果 import ... -
Java进度条JProgressBar使用方法
2010-06-03 22:05 3058Java进度条JProgressBar使用方法 packag ... -
Swing创建单选按钮
2010-04-29 23:18 31801. import javax.swing.JFram ... -
swing 单选(互斥)按钮
2010-04-29 23:18 2445package org.moon.admin; import ... -
JTextPane禁止换行的解决办法
2010-04-28 22:50 1277解决办法,重写下列方法: Java: public b ... -
Swing JTable高级使用-如何增加checkbox组件
2010-04-28 22:32 2131[url][/url] package components ... -
Swing 对JTextPane中字体颜色的设置
2010-04-09 20:52 2111import java.awt.BorderLayout; i ...
相关推荐
8. **继承和封装**:`ToolTipSingle` 类继承自 `JWindow`,并添加了自定义的组件和方法,实现了气泡提示的功能。 9. **事件处理**:虽然在提供的代码片段中没有明确提及,但通常提示窗口会与用户的交互事件关联,如...
在Java编程中,实现气泡提示功能是一种常见的用户界面交互设计,它可以帮助用户更好地理解界面上各个元素的作用或提供额外信息。本篇文章将详细介绍如何在Java中创建一个气泡提示功能,以及`ToolTip`类在其中起到的...
首先,让我们详细了解一下Java中的系统托盘和气泡提示的实现原理: 1. **系统托盘(System Tray)**: 在Java中,系统托盘功能是通过`java.awt.TrayIcon`类提供的,该类是Java Swing库的一部分。要使用系统托盘,...
总的来说,这个资源提供了在Swing应用中实现可点击链接标签的方法,对于那些希望增强Java GUI应用交互性的开发者来说,这是一个非常有价值的工具。通过研究和修改给出的代码,开发者可以更好地理解Swing组件的自定义...
网上太难找到满意的例子了,花了一两天功夫找资料研究,终于搞出来了,做了张背景图,表面上已经完全看不出来是用Swing做的了。感兴趣的新同鞋可以自己试试,改改我的代码,用PS做做背景图,可以做出超炫超酷的消息...
Java Swing仿QQ聊天窗口泡泡风格源代码,现在微信聊天里的也是这种泡泡的风格,这样比以前QQ那种混杂式视觉上更清淅,本款源代码是用Java仿写QQ聊天泡泡窗口模式,其实这款代码是针对Android系统写的,源代码中有很...
2. **图形库**:利用图形库(如Java的Swing或Android的View)来创建可定制的提示窗口,控制其动画效果和布局。 3. **多线程处理**:为了不影响主程序的运行,提示的显示和动画执行通常在单独的线程中进行。 4. **...
Java Balloon Tip Tool 是一个基于Java编程语言的实用工具,主要用于在用户界面上显示临时性的提示信息,类似于操作系统中的气泡提示。这种工具通常用于快速传递简短的通知或信息,而不打断用户的正常工作流程。在...
11. **图形和动画**: Swing也支持基本的图形绘制和动画效果,可以用来创建更生动的用户体验,如自定义的气泡提示、表情动画等。 以上是Java FEI QQ程序编写的一些核心知识点,涵盖了GUI设计、网络通信、数据管理等...
【Java QQ提示】项目是一个基于Java编程语言实现的简易QQ聊天工具,旨在提供基础的聊天提示和警告功能。这个项目对于学习Java编程、网络通信以及GUI界面设计具有很好的实践价值。下面将详细介绍该项目中的关键知识点...
对于能够理解并运行这个JAVA版泡泡龙游戏的开发者来说,这表明他们具备扎实的JAVA基础,包括对类、对象、继承、封装、多态等概念的理解,以及对JAVA GUI编程的掌握,如Swing或JavaFX库的使用。 【标签】"泡泡龙游戏...
这个库可能包含了各种样式的通知展示方式,如弹出框、气泡提示、托盘通知等,且可能支持自定义动画、声音效果和定时显示,以适应不同的应用场景。 开源软件的特性意味着"Ame UI Dewberries"的源代码对所有人开放,...
GUI使用Swing实现,通过Socket实现客户端与服务端之间的通信 工程目录结构为Eclipse项目结构 项目特性/Features 已实现功能 用户注册/登录/修改资料 查找/查看用户资料、添加好友、私聊 好友/群/会话列表 气泡...
以Java为例,我们可以使用`javax.swing.JButton`的`setToolTipText(String text)`方法为按钮添加提示。代码示例如下: ```java JButton button = new JButton("保存"); button.setToolTipText("点击保存当前编辑...
这种设计通常被称为“悬停提示”或“气泡提示”,它允许用户在不点击控件的情况下获取关于该控件功能的快速信息,从而增强交互的易用性和效率。 1. **悬停提示的概念**:悬停提示是一种用户界面设计技术,当用户的...
这可能涉及使用`java.awt`或`javax.swing`包中的基本组件,如`JPanel`,并结合动画效果来模拟顶部弹出的行为。 6. **事件监听与处理**: 创建顶部弹出通知的同时,通常需要监听用户的交互行为,例如点击通知后执行...
通过分析"codesky.zip"中的文件,开发者可以学习如何使用Java来构建类似的界面,包括如何设置布局、添加交互元素、实现动画效果,以及如何优化用户体验。这个项目对于想要提升Java界面编程技能的人来说是一个很好的...
1. **图形用户界面(GUI)框架**:大部分编程语言都有对应的GUI库,例如Java的Swing和JavaFX,C#的Windows Forms和WPF,Python的Tkinter或PyQt。你需要选择一个适合你项目的GUI框架来构建窗体。在这里,由于没有具体...
1. 显示气泡提示:可以使用`Shell_NotifyIcon`的NIF_INFO标志,或者在.NET中使用`BalloonTip`方法。 2. 快捷菜单:通过创建并关联一个`ContextMenu`,用户可以通过右键点击托盘图标访问这些菜单项。 3. 图标动画:...