当前位置: 首页 > 知识库问答 >
问题:

ScalaFX:如何拉伸滚动窗格以适合其父级

家弘业
2023-03-14

我使用边框窗格作为布局。底部的孩子有一个滚动窗格,它应该使用边框窗格的完整宽度(拉伸)——不管它的内容如何。

val scrollPane = new ScrollPane() {
hbarPolicy = ScrollBarPolicy.ALWAYS
content = new TextFlow() {
  children.add(new Text("Hello World"))
}
}

stage = new PrimaryStage {
title = "ScalaFX Hello World"
width = 1024
height = 768
scene = new Scene {
  content = new BorderPane() {
    center = Label("This is my center text")
    bottom = new Pane {
      children.add(scrollPane)
    }
  }
}

它在运行时看起来如下:

有没有可能在不手动设置ScrollPane宽度的情况下实现这一点?

共有1个答案

公西飞鸾
2023-03-14

在ScalaFX中,除非传递了父对象,否则场景将用空组实例化。

class Scene(override val delegate: jfxs.Scene = new jfxs.Scene(new jfxs.Group())) 

因此,不是设置内容,而是设置Scene的root

scene = new Scene {
    root = new BorderPane() {
    center = Label("This is my center text")
    bottom = scrollPane
  }
}

你一定注意到了,在添加ScrollPane之前,我甚至移除了你添加到底部的新窗格。

主要心血管事件

import scalafx.application.JFXApp
import scalafx.scene.Scene
import scalafx.scene.control.ScrollPane.ScrollBarPolicy
import scalafx.scene.control.{Label, ScrollPane}
import scalafx.scene.layout.BorderPane
import scalafx.scene.text.{Text, TextFlow}

object Main extends JFXApp {

  val scrollPane = new ScrollPane() {
    hbarPolicy = ScrollBarPolicy.ALWAYS
    content = new TextFlow() {
      children.add(new Text("Hello World"))
    }
  }
  stage = new JFXApp.PrimaryStage {
    title.value = "Hello Stage"
    width = 200
    height = 150
    scene = new Scene {
        root = new BorderPane() {
        center = Label("This is my center text")
        bottom = scrollPane
      }
    }
  }
}

截图

 类似资料:
  • 问题内容: 嗨,我使用a 来使彼此堆叠(),例如,如果我的父母的身高为500像素,并且我向其添加了两个子面板,两者的高度均为100像素。在绵延他们,让他们一起占据了500px的空间。有谁知道如何禁用此功能? 问题答案: 请改用GridBagLayout。您对UI的控制更多。 但是,如果您仍要使用BoxLayout且不希望它们拉伸,则可以使用不可见的组件填充物(如刚性区域,胶水和填充物)进行签出。

  • 有可能用jasperrepors文本文件实现类似rowSpan的东西吗? 我有两份报告:主报告和子报告。 在主详细信息带中,我有textfield和子报表:

  • 问题内容: 对于我网站的主导航,主导航链接的宽度为980像素,带ul。我正在尝试使导航链接拉伸以均匀地适合div的宽度。 我正在做一些典型的CSS来水平制作ul列表(浮动:左,显示:块)。我可以调整li的填充以使其非常接近,但是我真正需要的是一种使其自动伸展以适应的方法。可能? 编辑 难度1:无法使用表格。困难2:每个导航项的宽度都不同,以容纳更长或更短的链接名称。 问题答案: 这是最简单的方法:

  • 我正在尝试获取一些关于组件的信息,这些组件按标准包含在中。特别是我对阅读水平的感兴趣。我怎么参考?

  • 问题内容: 我有一个如下所示的div页面 样式 我想调整div的高度以填充(或拉伸到)整个div (标有绿色边框),并且不想越过页脚divD。我该如何解决? 问题答案: 只需添加到造型。应该没有必要。

  • 我正在使用BorderPane实现JavaFX中的布局。 假设BorderPane的maxPrefWidth设置为1000。左窗格中有一个按钮,右窗格中有一个按钮。在中心窗格中,还有一个大小未知的按钮。 如果:中间元素的宽度是500,那么左右节点的宽度应该是250。 如果:中间元素的宽度是600,那么左右节点的宽度应该是200。 有没有一种方法告诉左右窗格自动增长(水平)直到中心节点的被击中?