私は初めてのJavaゲームのコードを書いていますが、これまでのところGUIを構築してロジックを追加したいと思います。私のゲームでは、ユーザーは10、9、8、7、6、5、4、3、2、1、0のように(10秒で始まる)彼の動きの経過時間を見るべきです。私はJLabelを作成し、それに時間が掛かった。私のプログラムには3段階の難易度があります。最初に、ユーザーは適切なJButtonをクリックして1つを選択し、ユーザーはタイマーといくつかのオプションを選択して再生する必要があります。どうすればこの問題に対処できますか?私はJavaでTimerクラスについて読んでいますが、JLabelのカウントダウン時間をどのように表示することができるのかまだ分かりません。たぶん私はゲームのループを実装する必要がありますが、正直言って私はそれを作る方法は考えていません。Java - JLabelで経過時間を表示するタイマーの作成方法
-1
A
答えて
0
カウントダウンタイマーメソッドを使用し、カウントダウンする秒数とオプションの「終了時刻」メッセージとともにJLabelを渡すことができます。
あり、インターネット上のもののこの種の多くの例があるが、ここでは1の私の迅速な演出です:あなたは、カウント・ダウンが、その後のJLabel内に表示される方法を変更したい場合は
public static Timer CountdownTimer(JLabel comp, int secondsDuration, String... endOfTimeMessage) {
if (secondsDuration == 0) { return null; }
String endMsg = "~nothing~";
if (endOfTimeMessage.length>0) { endMsg = endOfTimeMessage[0]; }
final String eMsg = endMsg;
int seconds = secondsDuration;
final long duration = seconds * 1000;
JLabel label = (JLabel)comp;
final Timer timer = new Timer(10, new ActionListener() {
long startTime = -1;
@Override
public void actionPerformed(ActionEvent event) {
if (startTime < 0) {
startTime = System.currentTimeMillis();
}
long now = System.currentTimeMillis();
long clockTime = now - startTime;
if (clockTime >= duration) {
((Timer)event.getSource()).stop();
if (!eMsg.equals("~nothing~")) { label.setText(eMsg); }
return;
}
SimpleDateFormat df = new SimpleDateFormat("mm:ss:SSS");
label.setText(df.format(duration - clockTime));
}
});
timer.start();
return timer;
}
SimpleDateFormat文字列を変更することができます。このメソッドは、Timerオブジェクトを返すので、いつでも(停止時間が経過する前に)停止させる方法を理解できます。
関連する問題
- 1. C#タイマーの経過時間?
- 2. 時間の経過後にイメージを表示する方法は?
- 3. JAVAで1日1時間の経過時間を表示する
- 4. テキストビューで経過時間を表示する方法1時間30分
- 5. ユニークなタイマー(SharedPreferences)アクティビティの経過時間
- 6. タイマー経過時間は2回
- 7. Inno Setup - アンインストーラでの完了率、経過時間、および予想経過時間の表示方法
- 8. Java 1.8:スレッドセーフな方法で経過時間を測定する
- 9. タイマー - 特定の時間が経過した後にメッセージを表示
- 10. CSVデータの経過時間を秒単位で表示する方法 - Jmeter
- 11. タイマーが経過間隔
- 12. タイマーの経過時間を取得する
- 13. Androidタイマーで時間を表示する最善の方法
- 14. 経過時間
- 15. AngularJS $ intervalはタイマーを表示します(間隔が経過すると)
- 16. タイマーの時間ピッカーダイアログを作る方法
- 17. エポックから経過した時間を表示する
- 18. Objective Cでのゲーム開始からの経過時間表示
- 19. 時間が経過したキャンバスJava
- 20. ゲームに経過時間の時計を追加する(Java)
- 21. iPhone - NSDateComponents/NSCalendarと経過時間、私は、次の経過時間ユーザに表示したい
- 22. AS3/JavaScript MP3プレーヤーの経過時間を表示
- 23. tkinter python.afterでfps(経過時間)を測定する方法は?
- 24. Javascriptで経過した時間を測定する方法は?
- 25. androidで経過時間と日付を計算する方法
- 26. Swift iOS-ラベルを非表示にして一定時間が経過した後に表示する方法
- 27. 時間の経過後のアクションの表示ボタン
- 28. ユーティリティクラスを持つメソッドの経過時間をカウントする方法
- 29. multithreading - 一連のプロセスでの経過時間の合計を表示するクエリ
- 30. Oracle経過時間とCPU時間?
まだ試したことがありますか? – GurV
私は解決策を探しています。今ではゲームのループについて考えていて、タイマーと接続する方法は – JeffTheKiller
です。http://compsci.ca/v3/viewtopic.php?t=25991で始めることができます。しかし、g.drawImage呼び出しは、Swingのイベントディスパッチスレッドでは行われません。これは修正する必要があります(SwingUtilities?) –