java 消息通知_用Java弹出创建新的消息通知

java 消息通知

首先创建JFrame作为弹出窗口。 在其中添加一些JLabel以包含信息,并在适当的位置分配它们,使其看起来像一条通知消息。

下面给出了示例代码:

String message = 'You got a new notification message. Isn't it awesome to have such a notification message.';
String header = 'This is header of notification message';
JFrame frame = new JFrame();
frame.setSize(300,125);
frame.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.weightx = 1.0f;
constraints.weighty = 1.0f;
constraints.insets = new Insets(5, 5, 5, 5);
constraints.fill = GridBagConstraints.BOTH;
JLabel headingLabel = new JLabel(header);
headingLabel .setIcon(headingIcon); // --- use image icon you want to be as heading image.
headingLabel.setOpaque(false);
frame.add(headingLabel, constraints);
constraints.gridx++;
constraints.weightx = 0f;
constraints.weighty = 0f;
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.NORTH;
JButton cloesButton = new JButton('X');
cloesButton.setMargin(new Insets(1, 4, 1, 4));
cloesButton.setFocusable(false);
frame.add(cloesButton, constraints);
constraints.gridx = 0;
constraints.gridy++;
constraints.weightx = 1.0f;
constraints.weighty = 1.0f;
constraints.insets = new Insets(5, 5, 5, 5);
constraints.fill = GridBagConstraints.BOTH;
JLabel messageLabel = new JLabel('<HtMl>'+message);
frame.add(messageLabel, constraints);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);

其输出将是:

在这里,我创建了一个JFrame并添加了两个标签; 第一个是headingLabel,它是标题标签,第二个是messageLabel,它将包含消息信息; 和一个关闭按钮。 我已经使用了GridBagLayout,但是您可以使用任何选择。

现在,要使该框架看起来像一个弹出窗口,我们必须从该框架中删除标题栏和边框。 为此,在frame.setSize(…)之后添加以下行: :
frame.setUndecorated(true);

现在的输出将是:

请注意,现在我们的框架无法关闭,因为它没有标题栏关闭按钮。 因此,要使我们的关闭按钮可以用作框架关闭按钮,请更改其声明,如下所示:

JButton cloesButton = new JButton(new AbstractAction('x') {@Overridepublic void actionPerformed(final ActionEvent e) {frame.dispose();}
});

添加后,您将收到错误消息“无法引用用其他方法定义的内部类中的非最终变量框架”。 要摆脱此错误,您可以采用以下解决方案之一:

  1. 使您的框架变量最终。
  2. 使您的框架变量成为类中的全局变量。
  3. 使您的类扩展JFrame并完全删除frame变量。

现在,当您运行程序时,其外观将与图2相同,但是现在您可以通过单击closeButton来关闭框架。

您会注意到您的框架出现在屏幕的顶部,因此将其更改为屏幕的右下角,在创建框架后添加以下几行:

Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();// size of the screen
Insets toolHeight = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());// height of the task bar
frame.setLocation(scrSize.width - frame.getWidth(), scrSize.height - toolHeight.bottom - frame.getHeight());

现在,当您运行它时,它将如下所示:

现在,要使其在预定时间后消失,请在末尾添加以下行:

new Thread(){@Overridepublic void run() {try {Thread.sleep(5000); // time after which pop up will be disappeared.frame.dispose();} catch (InterruptedException e) {e.printStackTrace();}};
}.start();

至此,您已经成功创建了一个通知弹出窗口,该通知将出现在屏幕的右下角,如果未单击关闭按钮,则将在一段时间后消失。

因此,作为最后的修饰,您可以通过应用外观和感觉或在框架中应用不同的颜色来设计它。

您还可以通过添加以下内容使其显示在所有窗口的顶部:

frame.setAlwaysOnTop(true);

在上面的代码块中需要注意的一些事情:

1. messageLabel中的<HtMl>标签。 这是使标签自动换行。 但是请确保您在消息中发短信的长度不超过特定的长度。 您可以根据需要调整此高度和弹出窗口的高度。

2. “ headingIcon” 未在代码中声明。 它是您要使用的图像图标,而不是屏幕快照中的作为标题标题图标的恶魔图标。 样本声明如下所示:

ImageIcon headingIcon = new ImageIcon(“ image_url”);

3. 当前,用于弹出窗口的新窗口显示在任务栏中,因此,如果您希望在任务栏中不显示用于弹出窗口的窗口,请将JFrame更改为JDialog。

4. 在上面的代码中,默认的超时时间为5秒(弹出窗口消失之前),您可以根据需要通过在代码中编辑以下行来更新它:

Thread.sleep(5000); //弹出窗口消失的时间。

5. 要使关闭按钮看起来像默认标题栏的关闭按钮“ x”在其文本中。 您可以根据需要关闭它。

希望对您有帮助。

祝您编程愉快,别忘了分享!

参考: 用Java弹出创建新消息通知。 来自我们的JCG合作伙伴 Harsh Raval,来自harryjoy博客。


翻译自: https://www.javacodegeeks.com/2012/10/create-new-message-notification-pop-up.html

java 消息通知

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs android 压缩,Android Studio是否压缩classes.dex文件?

看起来输出文件夹中apk文件的classes.dex与已安装的应用程序不同.我正在使用classes.dex文件来解决一些安全问题,所以通常我解压缩最终的apk文件并从classes.dex文件中获取信息.但是当我在运行时读取classes.dex文件时文件大小是如此不同. (8MB vs 46KB)应用程序本身工作得很好…

自己写的py文件中调用django models

import os os.environ[DJANGO_SETTINGS_MODULE] 项目名.settingsimport djangodjango.setup()from blog import modelsentry models.Entry.objects.get(pk1)tech_blog models.Blog.objects.get(name科技)print(entry, tech_blog) 转载于:https://www.cnblogs.com/dangrui072…

shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有! -e这又是什么意思呢?

shell脚本 -d 是目录文件&#xff0c;那么-e&#xff0c;-f分别是什么?还有"&#xff01; -e"这又是什么意思呢&#xff1f; -e filename 如果 filename存在&#xff0c;则为真 -d filename 如果 filename为目录&#xff0c;则为真 -f filename 如果 filename为常规…

将Java应用程序作为Windows服务安装

这听起来像是您不需要的东西&#xff0c;但是有时候&#xff0c;当您分发最终用户软件时&#xff0c;可能需要将Java程序安装为Windows服务。 我之所以必须这样做&#xff0c;是因为我开发了一种用于公务员的工具 &#xff0c;可以自动将其Excel文件转换并将其推入我国的openda…

怎样实现banner自动播放html,纯CSS3实现banner图片自动轮播效果方式总结

自动轮播&#xff1a;实现切换图片&#xff0c;图片循环播放&#xff1b;鼠标悬停某张图片&#xff0c; 则暂停切换。css方法一、opacity控制透明度实现轮播效果依照需求咱们选择用CSS3的animation动画进行实现&#xff1b;transition动画须要触发才能启动&#xff0c;html因此…

你好a+b(非入门)

题目传送门&#xff1a;https://www.nowcoder.com/acm/contest/165/A来源&#xff1a;牛客网 牛牛刚学习了输入输出&#xff0c;他遇到了一道这样的题目。 输入2个整数a和b保证输入的a和b在long long范围之内&#xff0c;即满足-9223372036854775808 < a, b < 9223372036…

/etc/sysconfig/i18n文件详解

编辑/etc/sysconfig/i18n这个文件&#xff0c; 不管你装的是中文版,还是英文版.删掉原来的设置,把下面的拷贝过去 LANG"zh_CN.GB18030" SUPPORTED"zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT"latarcyrheb-sun16" 保存,重起.OK了 这时…

201771010112罗松《面向对象程序设计(java)》第三周学习总结

实验三 Java基本程序设计 201771010112 罗松 1、实验目的与要求 &#xff08;1&#xff09;进一步掌握Eclipse集成开发环境下java程序开发基本步骤&#xff1b; &#xff08;2&#xff09;熟悉PTA平台线上测试环境&#xff1b; &#xff08;3&#xff09;掌握Java语言构造基本…

构建openjdk镜像_在Windows上构建OpenJDK

构建openjdk镜像通过做一些实验&#xff0c;我发现手头提供JDK源代码来进行一些更改&#xff0c;使用它等等通常很有用。因此&#xff0c;我决定下载并编译该野兽。 显然&#xff0c;这花了我一些时间&#xff0c;尽管我最初的想法是&#xff0c;它应该和运行make命令一样简单:…

html图像特征提取,图像识别之图像特征提取

图像识别之图像特征提取HOG特征&#xff1a;方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处置中用来停止物体检测的特征描绘子。它经过计算和统计图像部分区域的梯度方向直方图来构成特征。Hog特征分离SVM分类器曾经被普遍应用于图像辨认…

190. 颠倒二进制位

题目 代码 class Solution { public:uint32_t reverseBits(uint32_t n) {n(n>>16)|(n<<16);n((n&0xff00ff00)>>8)|((n&0x00ff00ff)<<8);n((n&0xf0f0f0f0)>>4)|((n&0x0f0f0f0f)<<4);n((n&0xcccccccc)>>2)|((n&am…

Linux--date命令 date命令

Linux--date命令 date命令 date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为&#xff1a; date [选项] 显示时间格式&#xff08;以开头&#xff0c;后面接格式&#xff09; date 设置时间格式 命令中各选项的含义分别为&#xff1a; -d datestr, --date datest…

为某人命名以重新连接到您的服务器

在进行测试自动化时&#xff0c;通常需要知道当前计算机的名称&#xff0c;以提示另一台计算机连接到它&#xff0c;特别是在并行运行测试的情况下。 本周&#xff0c;我试图对服务器进行测试&#xff0c;以使其连接回在从属测试计算机上运行的WireMock服务器。 堆栈溢出的标准…

as转html5工具,将keras的h5模型转换为tensorflow的pb模型

背景&#xff1a;目前keras框架使用简单&#xff0c;很容易上手&#xff0c;深得广大算法工程师的喜爱&#xff0c;但是当部署到客户端时&#xff0c;可能会出现各种各样的bug&#xff0c;甚至不支持使用keras&#xff0c;本文来解决的是将keras的h5模型转换为客户端常用的tens…

暑假第六周

刘思翔来深圳玩&#xff0c;陪玩 转载于:https://www.cnblogs.com/cts1234/p/9664244.html

linux shell数据重定向(输入重定向与输出重定向)详细分析

在了解重定向之前&#xff0c;我们先来看看linux 的文件描述符。 linux文件描述符&#xff1a;可以理解为linux跟踪打开文件&#xff0c;而分配的一个数字&#xff0c;这个数字有点类似c语言操作文件时候的句柄&#xff0c;通过句柄就可以实现文件的读写操作。 用户可以自定义文…

计算机科学技术的教育应用论文,浅谈计算机科学技术在计算机教学中的应用论文...

计算机科学&#xff0c;研究计算机及其周围各种现象和规律的科学&#xff0c;亦即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题的学科。计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科&#xff0c;从抽象的算法分析、形式化语法…

socketserver和socket的补充(验证客户端合法性)

一、socket的补充 1、参数 socket.socket(familyAF_INET,typeSOCK_STREAM,proto0,filenoNone) 参数说明&#xff1a; family 地址系列应为AF_INET(默认值ipv4),AF_INET6(ipv6),AF_UNIX,AF_CAN或AF_RDS。 (AF_UNIX 域实际上是使用本地 socket 文件来通信) type 套接字类型应为…

使用Spring Boot和Spring Security验证JWT

对于我当前的项目&#xff0c;我将使用Spring Boot设置REST API &#xff08;最有可能使用BoxFuse运行&#xff09;。 为了能够使用API​​端点&#xff0c;应用程序将检查传入的请求是否具有较早提供的有效JWT令牌 &#xff08;由我信任的API服务提供&#xff09;。 为了实现…

怎么查看linux文件夹下有多少个文件

ls | wc -w是查看有多少个文件及文件夹ls | wc -c这个查看目录下多少个文件. 使用wc命令 具体通过wc --help 可以查看。如&#xff1a;wc -l filename 就是查看文件里有多少行 wc -w filename 看文件里有多少个word。 wc -L filename 文件里最长的那一行是多少个字…