JAva Swingポップアップボックス
3316 ワード
package com.sanguo.test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JWindow;
/**
*
* @author chen
*
*/
public class RightCornerPopMessage extends JWindow implements Runnable,
MouseListener {
private static final long serialVersionUID = -3564453685861233338L;
private Integer screenWidth;//
private Integer screenHeight; //
private Integer windowWidth = 200; //
private Integer windowHeight = 100; //
private Integer stayTime = 5000; //
private Integer x; // X
private Integer y; // Y
private String title = " ";
private String message = "testone";
private JPanel mainPanel; //
private JLabel titleLabel; //
private JPanel titlePanel; //
private JLabel messageLabel; //
private JPanel messagePanel; //
public RightCornerPopMessage() {
this.init();
Thread thread = new Thread(this);
thread.start();
}
private void init() {
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
screenWidth = dimension.width;
screenHeight = dimension.height;
x = (screenWidth - windowWidth) / 2;
y = -windowHeight;
this.setLocation(x, y);
mainPanel = new JPanel(new BorderLayout());
titleLabel = new JLabel(title);
titleLabel.setForeground(Color.WHITE);
titlePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
titlePanel.setBackground(Color.RED);
titlePanel.add(titleLabel);
messageLabel = new JLabel(message);
messagePanel = new JPanel();
messagePanel.add(messageLabel);
messagePanel.setBackground(Color.YELLOW);
mainPanel.add(titlePanel, BorderLayout.NORTH);
mainPanel.add(messagePanel, BorderLayout.CENTER);
this.setSize(windowWidth, windowHeight);
this.setAlwaysOnTop(true);//
this.getContentPane().add(mainPanel);
this.addMouseListener(this);
Toolkit.getDefaultToolkit().beep(); // ,
this.setVisible(true);
}
public void run() {
Integer delay = 10;
Integer step = 1;
Integer end = windowHeight;
try {
while (true) {
step++;
y++;
this.setLocation(x, y);
if (step > end) {
Thread.sleep(stayTime);
break;
}
Thread.sleep(delay);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
step = 1;
while (true) {
step++;
y--;
this.setLocation(x, y);
if (step > end) {
this.dispose();
break;
}
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.exit(0);
}
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String[] args) throws Exception {
// Thread.sleep(5000);
new RightCornerPopMessage();
}
}