/ / Използвайте 'javax.swing.Timer' и 'java.util.Timer' в същия проект? - java, люлка

Използвайте "javax.swing.Timer" и "java.util.Timer" в същия проект? - java, люлка

Работя по проект за тетрис и откривам, че трябва да използвам и двете javax.swing.Timer и java.util.Timer, Но един от тях не работи. Може ли някой да даде някакъв поглед върху този проблем?

Отговори:

1 за отговор № 1

Да, можете да използвате двата класа заедно, но трябва да въведете пълния пакет по този начин

java.util.Timer myUtilTimer= ..
javax.swing.Timer  myUtilTimer= ..

Освен това трябва да се грижите за този изход java.util.Timer трябва да бъде обвит SwingUtilities.invokeLater(myRunnable); да добавите към EDT в противен случай не е гарантирано, че нещо трябва да бъде изобразено / променено / пребоядисано


2 за отговор № 2

да, можете да използвате 2 класа със същото име, но вместо да ги импортирате, трябва да използвате пълния квалификатор:

а именно:

javax.swing.Timer timer = new ...

1 за отговор № 3

Да, можете, но ако използвате и двете в един и същ java файл, ще трябва да получите достъп до един от класа с пълното име на пакета като java.util.Timer защото ще получите конфликт, ако импортирате и двата класа.


1 за отговор № 4

В този бетон пример, „А javax.swing.Timer нарастване ан int при 100 Hz, докато a java.util.TimerTask изважда стойността при 1 Hz. "A LinkedBlockingQueue<Integer> синхронизира достъпа до споделените данни и записва последните N проби. Примерът илюстрира характеристики на трите предходни отговора:

  • Използване на напълно квалифицирано име.

  • Използване на invokeLater().