2

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

4

4 回答 4

2

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

IE:

javax.swing.Timer timer = new ...
于 2013-06-11T18:32:59.247 回答
1

是的,您可以,但是如果您在同一个 java 文件中同时使用这两个类,则需要通过完整的包名访问其中一个类,java.util.Timer因为如果您同时导入这两个类,则会发生冲突。

于 2013-06-11T18:32:18.697 回答
1

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

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

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

于 2013-06-11T18:46:14.033 回答
1

在这个具体示例中,“A以 100 Hz 的频率javax.swing.Timer递增 an ,而 a以 1 Hz 的频率对值进行采样”。A同步访问共享数据并记录最后的样本。该示例说明了所有上述三个答案的特征:intjava.util.TimerTaskLinkedBlockingQueue<Integer>N

  • 使用完全限定名称。

  • 的使用invokeLater()

于 2013-06-11T21:18:49.927 回答