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

ScalaFX(JavaFX):调整窗口大小时,舞台内容不会调整大小,java,scala,javafx,scalafx,Java,Scala,Javafx,Scalafx,为了检查这一意外行为,我只需将一个TextArea直接放入PrimaryStage包含的场景中:在应用程序启动时,TextArea与窗口完全匹配(如预期) 但是如果我移动窗口的边框,文本区域的大小不会改变,这正是我试图解决的问题。 这是我的ScalaFX代码(我希望它的行为与JavaFX的等效代码完全相同): 要使TextArea正确调整大小,您需要一个布局。例如,边框窗格应用作场景的内容 有关布局的更多信息,请访问 更新 看过ScalaFX源代码后,我意识到应该在场景中使用root而不是co

为了检查这一意外行为,我只需将一个
TextArea
直接放入
PrimaryStage
包含的
场景中:在应用程序启动时,
TextArea
与窗口完全匹配(如预期)

但是如果我移动窗口的边框,
文本区域的大小不会改变,这正是我试图解决的问题。

这是我的ScalaFX代码(我希望它的行为与JavaFX的等效代码完全相同):


要使
TextArea
正确调整大小,您需要一个布局。例如,
边框窗格
应用作场景的
内容

有关布局的更多信息,请访问

更新 看过ScalaFX源代码后,我意识到应该在场景中使用
root
而不是
content


JavaFX等价物按预期运行;
TextArea
占据了整个场景。我的代码没有问题吧?谢谢你提供的信息。我会尝试把它移植到Java,看看这是否是Ubuntu的问题……我看不出你的代码有什么问题,但我不是Scala程序员,所以。但是我测试了JavaFX等价物(没有“has-no-effect”行),效果很好。谢谢。这有助于我理解JavaFX是如何工作的。事实上,我在黑暗中摸索,甚至尝试用AnchorPane解决它(没有成功),因为JFXApp的行为让我觉得有必要使用一个窗格来调整它的大小。。通常,根目录将调整大小以填充场景,无论它是否是
窗格
的子类。非常感谢,Eugene。使用
root
而不是
content
可以调整它的大小(从而按预期工作)。我已经放弃了希望在我的代码中出现这样一个简单的bug,但它仍然是这样一个简单的bug:-)现在我可以开始在Ubuntu上享受JavaFX+Scala了!
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
    }
  }
}