无法动态更改摆动 window 位置
Can't change swing window location dynamically
我想更改 scala-swing window 位置。
我发现设置位置在初始化时可以正常工作,但无法动态更改位置
import java.awt.Point
import scala.swing._
import scala.swing.event.ButtonClicked
object TestWindow extends SimpleSwingApplication {
def top = new MainFrame {
contents = new BoxPanel(Orientation.Vertical) {
contents += new Button("Change location") {
reactions += {
case e: ButtonClicked => {
println("change location")
top.location = new Point(200, 100)//doesn't work
println("change location end")
}
}
}
}
location = new Point(100, 50) //works correctly
}
}
我该怎么做?
可以使用以下语句实现:
this.peer.getRootPane.getParent.setLocation(new Point(200, 100))
此处 this.peer
是对 java JButton 的引用,getRootPane
为您提供按钮的占位符,然后在这种特殊情况下 getParent
获取您的 MainFrame
对象(如果层次结构更大,可能需要使用多个 getParent
)。我认为通过使用 top.location
,您正在尝试创建一个新的 MainFrame
,这可能会被 API.
禁止
我想更改 scala-swing window 位置。 我发现设置位置在初始化时可以正常工作,但无法动态更改位置
import java.awt.Point
import scala.swing._
import scala.swing.event.ButtonClicked
object TestWindow extends SimpleSwingApplication {
def top = new MainFrame {
contents = new BoxPanel(Orientation.Vertical) {
contents += new Button("Change location") {
reactions += {
case e: ButtonClicked => {
println("change location")
top.location = new Point(200, 100)//doesn't work
println("change location end")
}
}
}
}
location = new Point(100, 50) //works correctly
}
}
我该怎么做?
可以使用以下语句实现:
this.peer.getRootPane.getParent.setLocation(new Point(200, 100))
此处 this.peer
是对 java JButton 的引用,getRootPane
为您提供按钮的占位符,然后在这种特殊情况下 getParent
获取您的 MainFrame
对象(如果层次结构更大,可能需要使用多个 getParent
)。我认为通过使用 top.location
,您正在尝试创建一个新的 MainFrame
,这可能会被 API.