这是一个非常简单的 Scala GUI 测试:
import scala.swing._
object FirstSwingApp extends SimpleGUIApplication {
def top = new MainFrame {
contents = new GridPanel(30, 20) {
contents ++= 1 to 600 map (_ => new Label("test"))
}
}
}
每个包含的标签都显示为所需的大小:
现在我想Label
用自定义类型替换:
contents ++= 1 to 600 map (_ => new Foo)
class Foo extends Panel {
override def minimumSize = {
println("minimumSize")
new java.awt.Dimension(32, 32)
}
override def preferredSize = {
println("preferredSize")
new java.awt.Dimension(32, 32)
}
override def maximumSize = {
println("maximumSize")
new java.awt.Dimension(32, 32)
}
}
但结果太小了:
显然,没有xxxSize
调用任何方法,因为程序不产生控制台输出。我到底需要改变什么才能使每个Foo
都以 32x32 像素的大小显示?