复制代码代码如下:
пакет com.wolf.action;
импортировать java.awt.borderlayout;
Импорт java.awt.dimension;
импортировать java.awt.toolkit;
импортировать java.awt.event.actionevent;
импортировать java.awt.event.actionlistener;
импортировать javax.swing.jdialog;
импортировать javax.swing.timer;
Демо -версия открытого класса расширяет таймер {
Частный статический конечный длинной сериоверсион = 2791827603307165823L;
публичная демонстрация (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);
Таймер таймер = новый таймер (0, TimerAction);
timer.start ();
для (int i = 0; i <10; i ++) {
пытаться {
Thread.sleep (100);
} catch (прерванная экспрессия e) {
e.printstacktrace ();
}
высота = высота + 5;
TimerAction.Setheight (высота);
}
timer.stop ();
новая демонстрация (1, TimerAction);
}
}
класс TimerAction реализует ActionListener {
Частный mydialog mydialog = null;
частный int height = 0;
public void setheight (int height) {
this.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 - высота));
mydialog.setsize (новое измерение (200, высота));
}
}
класс mydialog расширяет jdialog {
Частный статический конечный длинной сериоверсион = 2791827603307165823L;
Private Dimension Scresisize = toolkit.getDefaulttoolkit (). getScreensize ();
Публичное измерение getScreensize () {
вернуть экранизацию;
}
public mydialog () {
супер();
init ();
}
private void init () {
this.getContentPane (). SetLayout (new BorderLayout ());
this.SetLocation (((int) Scresisize.getWidth ()) - 200,
((int) scresisize.getheight () - 20));
this.setvisible (true);
this.setDefaultCloseoperation (jdialog.dispose_on_close);
}
}