敬酒消息是一种警报,会随着时间自动消失。使用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);
}请参见下面的祝酒消息窗口示例。
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 nhooo.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);
for (double d = 1.0; d > 0.2; d -= 0.1) {
Thread.sleep(100);
setOpacity((float)d);
}
//将可见性设置为false-
setVisible(false);
}catch (Exception e) {
System.out.println(e.getMessage());
}
}
}输出结果
Welcome to nhooo.Com