【セッターに】続・Eclipseでカスタムコントロールを作ろうとした【やらせる】
こんばんにちございます。トランです。
前回のお話
wordsoftrantran1021.hatenablog.com
これ書き終わった時に、そういえばセッター実行されるからその中でnewさせたりしたらうまくいくんじゃね?と思い試してみたら多分うまくいった・・・はず!以下ソース
package myCon;package myCon;
import java.text.SimpleDateFormat;import java.util.Timer;import java.util.TimerTask;
import javax.swing.JLabel;
public class DispTimeLabel extends JLabel {
private String _str = "hh:mm:ss"; private SimpleDateFormat sdf ; private Timer timer; private TimerTask task = new TimerTask() { @Override public void run() { bindTime(); } };
public DispTimeLabel() { startTime(); }
public String getStr() { return this._str; } public void setStr(String arg) { this._str = arg; startTime(); }
private void bindTime() { this.setText(sdf.format(System.currentTimeMillis())); }
private void startTime() { sdf = new SimpleDateFormat(_str); timer = new Timer(); timer.schedule(task, 1000,1000); }}
セッターの所に新しくstartTime()をいれました。これでデザイナウィンドウ開いているときにプロパティを変更するとセッター呼ばれてこいつが呼ばれるのでその時に現在時刻表示処理までやらせるってな感じです。
やったぜ!
そんなわけで、おしまい