2016-05-05 8 views
0

JLabelが実際にStringとIconの横に値を表示できないのだろうかと思います。例えば..JLabelへの文字列以外の変数の置換

label.setText(clock); 

次のように
Clock clock = Clock.systemDefaultZone(); 

そしてJLabelのsetText()方法をクロック変数を表示するために私はsetText()方法は、専用文字列パラメータで動作することを承知しています。しかし、変数は文字列に変換することはできませんので、私は本当にどのようにラベルに表示するか分かりません。または、JLabelの代わりにClock変数を表示するにはどうすればよいですか。

私はlabel.setText(Clock.valueOf(clock));を試しましたが、後で私はそれがプリミティブなデータ(またはいいえ?私は本当にこの瞬間に立ち往生した。

+0

@HovercraftFullOfEels o boy ...代わりにLocalTimeを使用できることに気付きました。私はここで初心者です:Dこれは恥ずかしいです。 –

+0

クロックを使用している理由がわかりません。 CalendarクラスまたはDateクラスを使用する必要があると思われます。これらの各クラスは、現在の時刻の文字列表現を持ちます。 – camickr

+0

@HovercraftFullOfEels大丈夫そういうことを試してみよう –

答えて

0

JLabelのはこのため

System.out.println(clock); //this would automatically call the toString() method. 

として、あなたは、toString()メソッド をオーバーライドしている場合、オブジェクト にテキストを設定し、それに呼び出す...

ます..あなたが直接しなければなりませんあれを呼べ。

label.setText(clock.toString()); 
2

私はjava.time.Clockを使用していると仮定します。 clock.instant().toString()を実行すると、現在の時刻をISO-8601文字列に変換できます。ラベルは、クロックの更新を表示したい場合は、ラベルのテキストを毎秒をリセットするためにTimerのようなものを使用する必要があるかもしれません

label.setText(clock.instant().toString()); 

を:

したがって、あなたが使用してラベルに時計を置くことができます。

thisのISO-8601で独自のフォーマットを設定したくない場合は、フォーマットを変更できます。

+1

(1+)、私は新しいJava 8 Date/Time APIを学びました。 – camickr

+0

動作しません。 'JLabelクラスのメソッドsetTextは与えられた型には適用できません' –

+0

@camickr me two:/、+1 – DarkV1

関連する問題