事件调度线程上是否调用了类似的setBounds()
方法?我问这个是因为我正在编写一个绘制平台并使用 a将它们向上移动的程序。我重写了该方法,以便每次调整大小时,平台也会调整大小。我只是想确保在移动平台时不会调整平台大小。另外,使用 a检查是否已调整大小会更好吗?Component
JPanel
Swing Timer
setBounds()
JPanel
setBounds()
Timer
WindowListener
JPanel
问问题
84 次
1 回答
1
Swing 代码将在 EDT 上调用 setBounds(),但您必须确保代码自己对 setBounds() 的调用也仅在 EDT 上调用它。如果您可以确保 setBounds() 的所有调用都发生在 EDT 上,那么您不必担心在执行 SwingTimer 时会执行 setBounds(),因为 SwingTimers 默认情况下也在 EDT 上执行(因此它们不会同时执行)。
此外,我从未见过有人覆盖 setBounds() 所以我想知道是否没有替代解决方案,例如每次执行 SwingTimer 时都查询边界。像你说的那样使用监听器来监听窗口大小确实听起来好多了。
于 2014-07-23T19:17:01.437 回答