/ / Javaクロックアプレット - Java、日付、アプレット、awt

Javaクロックアプレット - Java、日付、アプレット、awt

私は現在のJavaアプレットを表示しています日付と時刻が自動的に更新されます。本質的にライブクロックです。日付と時刻をデフォルトの形式で表示しています(これは次のようになります: Mon Oct 27 15:10:13 CDT 2014)、私は少しそれを切り替えると、このような何かを表示したいと思います: Mon 10/27/2014 15:10:13 CDT.

過去のいくつかの質問をここで見てきました。私のコードを更新するために見つけたものを使用しましたが、もはや時間が表示されないので、私は何か間違っています。

元の機能:

public void paint(Graphics g){
g.drawString(new java.util.Date().toString(), 10, 30);

}

変更された非機能:

public void paint(Graphics g){
g.drawString(new java.util.Date("E MM/dd/yyyy k:m:s z").toString(), 10, 30);

}

回答:

回答№1は2
new java.util.Date("E MM/dd/yyyy k:m:s z")

これは私のためにまったくコンパイルされておらず、あなたの問題の原因と思われる:

Exception in thread "main" java.lang.IllegalArgumentException
at java.util.Date.parse(Unknown Source)
at java.util.Date.<init>(Unknown Source)
at Test.main(Test.java:4)

代わりに、私は SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("E MM/dd/yyyy k:m:s z");
g.drawString(sdf.format(new Date()), 10, 30);

回答№2については2
  1. コール super.paint あらゆる種類のカスタムペインティングを行う前に。
  2. カスタムペイントの代わりにテキストを表示するために、何らかの種類のラベルを使用することを検討してください
  3. つかいます SimpleDateFormat フォーマットを変更する Date オブジェクト。

あなたは次の行に沿って何かを使うことができます...

protected static final SimpleDateFormat SDF = new SimpleDateFormat("EEE dd/MM/yyyy HH:mm:ss z");

//...

String dateString = SDF.format(new Date());
//... Paint away