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.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.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.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.s
etSize(…)之后添加以下⾏: : frame.setUndecorated(true);
现在的输出将是:
请注意,现在我们的框架⽆法关闭,因为它没有标题栏关闭按钮。 因此,要使我们的关闭按钮可以⽤作框架关闭按钮,请更改其声明,如下所⽰:
JButton cloesButton = new JButton(new AbstractAction('x') {
@Override
html framepublic void actionPerformed(final ActionEvent e) {
frame.dispose();
}
});
添加后,您将收到错误消息“⽆法引⽤⽤其他⽅法定义的内部类中的⾮最终变量框架”。 要摆脱此错误,您可以采⽤以下解决⽅案之⼀:
1. 使您的框架变量最终。
2. 使您的框架变量成为类中的全局变量。
3. 使您的类扩展JFrame并完全删除frame变量。
现在,当您运⾏程序时,其外观将与图2相同,但是现在您可以通过单击closeButton来关闭框架。
您会注意到您的框架出现在屏幕的顶部,因此将其更改为屏幕的右下⾓,在创建框架后添加以下⼏⾏:
Dimension scrSize = DefaultToolkit().getScreenSize();// size of the screen
Insets toolHeight = DefaultToolkit().GraphicsConfiguration());// height of the task bar
frame.setLocation(scrSize.width - Width(), scrSize.height - toolHeight.bottom - Height());
现在,当您运⾏它时,它将如下所⽰:
现在,要使其在预定时间后消失,请在末尾添加以下⾏:
new Thread(){
@Override
public 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”在其⽂本中。 您可以根据需要关闭它。
希望对您有帮助。
祝您编程愉快,别忘了分享!
参考: 来⾃我们的 Harsh Raval,来⾃博客。
java 消息通知
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论