package com.wolf.action;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.Timer;
public class Demo extends Timer {
private static final long serialVersionUID = 2791827603307165823L;
public Demo(int arg0, ActionListener arg1) {
super(arg0, arg1);
}
public static void main(String[] args) {
MyDialog mydialog = new MyDialog();
int height = 150;
TimerAction timerAction = new TimerAction(mydialog);
Timer timer = new Timer(0, timerAction);
timer.start();
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
height = height + 5;
timerAction.setHeight(height);
}
timer.stop();
new Demo(1, timerAction);
}
}
class TimerAction implements ActionListener {
private MyDialog mydialog = null;
private int height = 0;
public void setHeight(int height) {
this.height = height;
}
public TimerAction(MyDialog mydialog) {
this.mydialog = mydialog;
}
public void actionPerformed(ActionEvent event) {
mydialog.setLocation(((int) mydialog.getScreenSize().getWidth()) - 200,
((int) mydialog.getScreenSize().getHeight() - 20 - height));
mydialog.setSize(new Dimension(200, height));
}
}
class MyDialog extends JDialog {
private static final long serialVersionUID = 2791827603307165823L;
private Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public Dimension getScreenSize() {
return screenSize;
}
public MyDialog() {
super();
init();
}
private void init() {
this.getContentPane().setLayout(new BorderLayout());
this.setLocation(((int) screenSize.getWidth()) - 200,
((int) screenSize.getHeight() - 20));
this.setVisible(true);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
}