在同一个项目中使用'javax.swing.Timer'和'java.util.Timer'?

时间:2013-06-11 18:29:35

标签: java swing

我正在开发一个俄罗斯方块项目,我发现我需要同时使用 javax.swing.Timer java.util.Timer 。但其中一个不起作用。任何人都可以提供任何有关此问题的见解吗?

4 个答案:

答案 0 :(得分:2)

是的,您可以使用两个具有相同名称的类,但不应该导入它们,您应该使用完整限定符:

即:

javax.swing.Timer timer = new ...

答案 1 :(得分:1)

是的,您可以但是如果您在同一个java文件中同时使用它们,则需要使用完整的包名称(例如java.util.Timer)访问其中一个类,因为如果您同时导入两个类,它将会发生冲突课程。

答案 2 :(得分:1)

是的,你可以一起使用这两个类,但是你必须像这样输入完整的包

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

此外,您必须注意java.util.Timer的输出必须包含在SwingUtilities.invokeLater(myRunnable);中才能添加到EDT,否则无法保证任何内容应该显示/更改/重新绘制

答案 3 :(得分:1)

在具体的example中,“A javax.swing.Timer增加int at 100 Hz,而java.util.TimerTask以1 Hz的频率对值进行采样。“LinkedBlockingQueue<Integer>同步对共享数据的访问并记录最后N个样本。该示例说明了前三个答案的所有特征:

  • 使用完全限定名称。

  • 使用invokeLater()