/**
* UIの再描画
*/
class RePaintLouncher
implements
Runnable
{
private java.swing.JComponent
widget;
public void run()
{
widget.repaint();
}
RePaintLouncher( java.swing.JComponent widget )
{
this.widget = widget;
}
}
/**
* 周期的にUIの再描画を呼び出す
*/
class FrequencyRePaintLouncher
extends
java.util.TimerTask
{
private java.util.Timer
timer = new private java.util.Timer( "Example" );
private RePaintLouncher
louncher;
private Runnable
painter;
public void run()
{
painter.run();
javax.swing.SwingUtilities.invokeLater( louncher );
timer.schedule( this, 1000 );
}
FrequencyRePaintLouncher( java.swing.JComponent widget, Runnable painter )
{
this.painter = painter;
louncher = new RePaintLouncher( widget );
}
}
class Painter
implements Runnable
{
private java.awt.Graphics
target;
public void run() { /*・・・描画処理・・・*/ }
Painter( java.awt.Graphics target ){ /*省略*/ };
}
/**** ここから下をUI構築部に差し込む ****/
javax.swing.ImageIcon
icon = new javax.swing.ImageIcon();
/*** iconを使った画像の初期化処理をこのへんに書く ***/
java.swing.JLabel
label = new java.swing.JLabel( icon );
FrequencyRePainter
rePainter = new FrequencyRePainter( label, new Painter( icon.getImage().getGraphics() ) );
rePainter.run();