Java Swing - Toast
import java.awt.Color;
import java.awt.Component;
import java.awt.GridBagLayout;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class Toast {
public static void main(String[] args) throws InterruptedException {
ToastMessage toast = new ToastMessage("Toast Demo");
toast.show();
toast.showToMousePos();
JFrame frame = new JFrame();
frame.setSize(300, 300);
frame.setLocation(600,600);
frame.setVisible(true);
toast.showToCenter(frame);
toast.close();
}
}
class ToastMessage {
JFrame frame;
public ToastMessage(final String message) {
frame = new JFrame();
frame.setUndecorated(true);
frame.setLayout(new GridBagLayout());
frame.setBackground(new Color(240,240,240,250));
frame.setLocationRelativeTo(null);
frame.setSize(300, 50);
frame.add(new JLabel(message));
frame.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
frame.setShape(new RoundRectangle2D.Double(0,0,frame.getWidth(),frame.getHeight(), 20, 20));
}
});
}
public void show() {
try {
frame.setOpacity(1);
frame.setVisible(true);
Thread.sleep(1000);
for (double d = 1.0; d > 0.2; d -= 0.1) {
Thread.sleep(100);
frame.setOpacity((float)d);
}
frame.setVisible(false);
}catch (Exception ignore) {
}
}
public void show(int x, int y) {
frame.setLocation(x, y);
show();
}
public void showToMousePos() {
Point p = MouseInfo.getPointerInfo().getLocation();
show( p.x, p.y );
}
public synchronized void showToCenter(Component comp) {
frame.setLocationRelativeTo(SwingUtilities.getRoot(comp));
show();
}
public void close() {
frame.dispose();
}
}
댓글 없음:
댓글 쓰기