[ create a new paste ] login | about

Link: http://codepad.org/SGeXhrlr    [ raw code | fork ]

C++, pasted on Jun 26:
/**
 * 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();


Create a new paste based on this one


Comments: