2014-10-27 3 views
0

У меня есть апплет java, который отображает текущую дату и время и обновляется автоматически каждую секунду. Это, по сути, живые часы. Он показывает дату и время в формате по умолчанию (который выглядит так: Mon Oct 27 15:10:13 CDT 2014), но я хотел бы немного его переключить и показать что-то вроде этого: Mon 10/27/2014 15:10:13 CDT.Java Clock Applet

Я рассмотрел некоторые прошлые вопросы здесь и использовал то, что нашел, чтобы обновить свой код, но он больше не отображает время, поэтому я делаю что-то неправильно. Здесь была моя оригинальная функция с последующим модифицированным, нерабочего функции:

Оригинал функции:

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

} 

Modified, неработающие функции:

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

} 

ответ

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); 
+0

Я пытался обменивать в вашем коде, и я получил ошибку: SimpleDateFormat не может быть разрешен к типу \t SimpleDateFormat не может быть разрешен к типу \t Дата не может быть разрешена к типу – Brett

+1

@Brett Для этого вам необходимо использовать операторы импорта. 'import java.util.Date;' и 'import java.text.SimpleDateFormat;' Ваша IDE, если вы используете ее, предложит вам импортировать. Дата имеет несколько, поэтому вам нужно явно найти версию 'util', но SDF уникален. – Compass

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