Scala - строка меню появляется только при повторной проверке содержимого окна - PullRequest
3 голосов
/ 28 июля 2010
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")
        }
      }
    }
  }
}

альтернативный текст http://grab.by/grabs/4a0ffda4603149a4680415447c684129.png

В момент, когда я меняю размер окна, появляется меню.

альтернативный текст http://grab.by/grabs/cef34bf57327edf6d47f9a0e14902285.png

Любая идея, почемуи как я могу предотвратить это?

1 Ответ

6 голосов
/ 28 июля 2010

Попробуйте изменить порядок выписок. Например. доведение visible = true до конца определения frame.

Другой способ - вызвать метод pack после создания frame.

...