在 Java Swing 中创建 Toast 消息\n
Toast 消息是一种带自动消失时间的提醒。有了 JDK 7,我们可以非常容易地创建一个类似 Android 上提醒的 Toast 消息。接下来是创建 Toast 消息所需步骤。
创建一个圆角矩形形状的框架。向框架添加一个组件侦听器,并覆盖 componentResized() 来更改框架的形状。每当窗口大小发生更改时,此方法都会正确地重新计算框架的形状。
frame.addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { frame.setShape(new RoundRectangle2D.Double(0,0,frame.getWidth(), frame.getHeight(), 20, 20)); } });
在显示期间,先显示框架,然后通过将不透明度变为 0 来慢慢地隐藏它。
for (double d = 1.0; d > 0.2; d -= 0.1) { Thread.sleep(100); setOpacity((float)d); }
示例
请查看以下 Toast 消息窗口的示例。
import java.awt.Color; import java.awt.GridBagLayout; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.geom.RoundRectangle2D; import javax.swing.JFrame; import javax.swing.JLabel; public class Tester { public static void main(String[] args) { ToastMessage message = new ToastMessage("Welcome to TutorialsPoint.Com"); message.display(); } } class ToastMessage extends JFrame { public ToastMessage(final String message) { setUndecorated(true); setLayout(new GridBagLayout()); setBackground(new Color(240,240,240,250)); setLocationRelativeTo(null); setSize(300, 50); add(new JLabel(message)); addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { setShape(new RoundRectangle2D.Double(0,0,getWidth(), getHeight(), 20, 20)); } }); } public void display() { try { setOpacity(1); setVisible(true); Thread.sleep(2000); //hide the toast message in slow motion for (double d = 1.0; d > 0.2; d -= 0.1) { Thread.sleep(100); setOpacity((float)d); } // set the visibility to false setVisible(false); }catch (Exception e) { System.out.println(e.getMessage()); } } }
结果
广告