ScalaFX(JavaFX):窗口大小调整时舞台内容不会调整大小

5
为了检查这种意外行为,我直接将一个TextArea放入PrimaryStage包含的Scene中:在启动应用程序时,TextArea正好适合窗口(如预期所示)。 但是,如果我移动窗口的边框,TextArea的大小不会改变,这就是我试图解决的问题。 请看我的截图 这是我的ScalaFX代码(我希望它的行为与JavaFX的等效代码完全相同):
object MyApp extends JFXApp {
  stage = new PrimaryStage {
    title = "My App"
    resizable = true // has no effect
    maxWidth = Double.MaxValue // has no effect
    maxHeight = Double.MaxValue // has no effect

    val outputDisplay = new TextArea {
      resizable = true // has no effect
      maxWidth = Double.MaxValue // has no effect
      maxHeight = Double.MaxValue // has no effect
      hgrow = Priority.Always // has no effect
      vgrow = Priority.Always // has no effect
    }

    scene = new Scene {
      resizable = true // has no effect
      maxWidth = Double.MaxValue // has no effect
      maxHeight = Double.MaxValue // has no effect
      fill = LightGreen

      // add outputDisplay as content
      content = outputDisplay
    }
  }
}

1
JavaFX的等效部分表现正常;TextArea填充了场景。 - James_D
我的代码没问题吧?谢谢你提供这个信息。我会尝试将它移植到Java上,看看是否是Ubuntu的问题... - ideaboxer
1
我没有看到你的代码有什么问题,但是我不是Scala程序员。不过,我测试了JavaFX的等效代码(去掉了“没有效果”的行),它可以正常工作。 - James_D
谢谢。这帮助我理解JavaFX的工作原理。事实上,我还在摸索中,甚至尝试使用AnchorPane(没有成功)来解决它,因为JFXApp的行为让我认为必须使用一个面板来调整大小。 - ideaboxer
1个回答

4
为了使

1
JavaFX 8版本的链接。通常情况下,无论是否是Pane的子类,根节点都会被调整大小以填充场景。 - James_D
1
非常感谢,尤金。使用root而不是content使其调整大小(因此按预期工作)。我已经放弃了对我的代码中存在如此简单的错误的希望,但仍然是一个如此简单的错误 :-) 现在我可以开始在Ubuntu上享受JavaFX+Scala! - ideaboxer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接