gpt4 book ai didi

java - 如何在 java 中显示 ms outlook 的通知,如弹出窗口?

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:52 24 4
gpt4 key购买 nike

如何在 java swing 中显示 ms outlook 的弹出通知?是否可以?还有其他选择吗?

enter image description here

最佳答案

这是您的通知弹出窗口:

Popup

示例代码:

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.LinearGradientPaint;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class NotificationPopup extends JDialog {
private final LinearGradientPaint lpg;

public NotificationPopup() {
setUndecorated(true);
setSize(300, 100);

// size of the screen
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

// height of the task bar
final Insets scnMax = Toolkit.getDefaultToolkit().getScreenInsets(
getGraphicsConfiguration());
final int taskBarSize = scnMax.bottom;

setLocation(screenSize.width - getWidth(), screenSize.height - taskBarSize
- getHeight());

// background paint
lpg = new LinearGradientPaint(0, 0, 0, getHeight() / 2, new float[] { 0f,
0.3f, 1f }, new Color[] { new Color(0.8f, 0.8f, 1f),
new Color(0.7f, 0.7f, 1f), new Color(0.6f, 0.6f, 1f) });

// blue background panel
setContentPane(new BackgroundPanel());
}

private class BackgroundPanel extends JPanel {
public BackgroundPanel() {
setOpaque(true);
}

@Override
protected void paintComponent(final Graphics g) {
final Graphics2D g2d = (Graphics2D) g;
// background
g2d.setPaint(lpg);
g2d.fillRect(1, 1, getWidth() - 2, getHeight() - 2);
g2d.setColor(Color.BLACK);

// border
g2d.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
}
}

public static void main(final String[] args) {

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (final Exception e1) {
e1.printStackTrace();
}

final NotificationPopup f = new NotificationPopup();

final Container c = f.getContentPane();
c.setLayout(new GridBagLayout());

final 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;

final JLabel l = new JLabel("You have got 2 new Messages.");
l.setOpaque(false);

c.add(l, constraints);

constraints.gridx++;
constraints.weightx = 0f;
constraints.weighty = 0f;
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.NORTH;

final JButton b = new JButton(new AbstractAction("x") {

@Override
public void actionPerformed(final ActionEvent e) {
f.dispose();
}
});

b.setOpaque(false);
b.setMargin(new Insets(1, 4, 1, 4));
b.setFocusable(false);

c.add(b, constraints);

f.setVisible(true);
}
});
}
}

关于java - 如何在 java 中显示 ms outlook 的通知,如弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com