Я делал часы, которые показывают время в Java, я покажу код ниже:ошибка синхронизации Java
public class MyApp extends javax.swing.JFrame {
int timeRun = 0;
/**
* Creates new form MyApp
*/
public MyApp() {
initComponents();
System.out.println("We'll start here!");
new Thread()
{
public void Run(){
while(timeRun == 0)
{
Calendar cal = new GregorianCalendar();
int hour = cal.get(Calendar.HOUR);
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
int AM_PM = cal.get(Calendar.AM_PM);
String time = hour + ":" + min + ":" + sec;
System.out.print(time);
System.out.print("We'll end here!");
}
}
}.start();
}
У меня есть JLabel, и другие компоненты, необходимые для этого JFrame работать.
У меня также есть основная настройка, хотя вы не можете увидеть ее в приведенном выше примере Моя проблема в том, что я не могу получить значение со времени, а также не могу напечатать «Мы закончим здесь» внутри Run, я новичок в Java, поэтому любая помощь будет высоко оценена.
Моя консоль печатает это:
run:
We'll start here!
BUILD SUCCESSFUL (total time: 6 seconds)
Если вам необходимо периодически обновлять пользовательский интерфейс, вы должны использовать 'javax.swing.Timer', который будет выполнять«тикает»в контексте Диспетчерский поток событий – MadProgrammer
не уверен, что это связано или нет, но он должен быть запущен(), а не Run() – user3001267
Не нужно кричать «РЕШЕНЫ» в заголовке. Это не дискуссионный форум. Это настоящий Q & A сайт. Вам просто нужно отметить ответ, принятый. Вопрос уже будет выглядеть по-разному в списках и поиске без необходимости изменения названия. – BalusC