Scala - 菜单栏仅在窗口内容重新生效时出现

时间:2010-07-28 04:48:40

标签: swing scala menu

import scala.swing._
import swing.event.{WindowClosing}
import java.awt.Dimension
object MenuBarTest {
  def main(args:Array[String]) {


    val frame = new Frame() {
      visible=true
      contents = new Panel() {
        preferredSize = new Dimension(600,400)
      }
      title = "Test"
      reactions += {
        case WindowClosing(e) => System.exit(0)
      }
      menuBar = new MenuBar {   
        contents += new Menu("A Menu") {      
          contents += new MenuItem("An item")      
          contents += new MenuItem(Action("Action item") { println(title) })       
          contents += new Separator        
          contents += new CheckMenuItem("Check me")
        }
      }
    }
  }
}

alt text http://grab.by/grabs/4a0ffda4603149a4680415447c684129.png

当我调整窗口大小时,菜单会弹出。

alt text http://grab.by/grabs/cef34bf57327edf6d47f9a0e14902285.png

知道为什么会这样,以及如何防止这种情况发生?

1 个答案:

答案 0 :(得分:6)

尝试更改语句的顺序。例如。将visible = true带到frame定义的末尾。

另一件事是在创建pack之后调用frame方法。