我正在做一个俄罗斯方块项目,我发现我需要同时使用javax.swing.Timer和java.util.Timer。但其中之一不工作。任何人都可以提供有关此问题的任何见解吗?
user2475740
问问题
870 次
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同步访问共享数据并记录最后的样本。该示例说明了所有上述三个答案的特征:int
java.util.TimerTask
LinkedBlockingQueue<Integer>
N
使用完全限定名称。
的使用
invokeLater()
。
于 2013-06-11T21:18:49.927 回答