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

TextArea在ScalaFx中扩展场景时不增长

史钊
2023-03-14

我一直在尝试将我最初用SwingJava编写的一个学校项目转换为ScalaFX的Scala。GUI基本上是一个带有按钮和搜索输入的顶部栏,而栏的底部是一个TextArea,它将显示按钮的输出。这是应用程序启动时的样子。问题是当我用鼠标扩展阶段时,TextArea的大小保持不变。这是一个例子。我试着为ScalaFX查找特定的帮助,但感觉那里的留档相当薄,所以我不得不将我的研究集中在JavaFX上。我在这里找到了一篇关于使用HBox在我用鼠标拉伸舞台时扩展文本框的帖子,但它似乎不起作用。当用鼠标拉伸舞台时,有没有办法让TextArea缩放大小?我在GUI下面包含了代码,下面添加了HBox。

object SorcerersCave extends JFXApp{
  val informationText: TextArea = new TextArea()

  stage = new PrimaryStage {
      title = "Sorcerers Cave"
      val searchBy = new ComboBox[String](List("Index", "Name", "Type")){
        value = "Index"
      }
      val resizeableBox = new HBox(informationText){
        hgrow = Priority.Always
      }
      val searchInput = new TextField() {prefWidth = 100}
      val buttonPane = new FlowPane {
        hgap = 5
        children = Seq(new Button("Read") { onAction = handle { readFile }} ,
                       new Button("Display"){ onAction = handle { displayCave() }},
                       searchBy,
                       new Label("Search target:"),
                       searchInput,
                       new Button("Search"){ onAction = handle { search(searchInput.getText.toLowerCase.trim, searchBy.toString()) }}
        )
      }
      scene = new Scene {
        content = new BorderPane {
             top = buttonPane
             center = resizeableBox
        }
      }
  }
}

共有1个答案

方昊
2023-03-14

在JavaFX中,当创建<code>场景。ScalaFX为<code>场景</code>提供了默认的承包商,将<code>组</code>指定为根节点。在ScalaFX<code>场景中#content</code>是访问根节点子节点的快捷方式,默认情况下,这些子节点是<code>组</code>的子节点。

在您的情况下,由于的重新调整大小行为,您不希望将作为根节点。

场景的根节点应该是 BorderPane,因此请将其分配给节点而不是内容

scene = new Scene {
  root = new BorderPane { ...
  }
}
 类似资料:
  • 问题内容: 我有一个Textarea,用户可以在其中输入文本。默认情况下,它的高度为17px。但是,如果用户插入大量文本,我希望文本区域相应地扩展。有没有办法用CSS做到这一点?提前致谢!! 问题答案: 仅靠CSS不能做到这一点。尝试使用自动增长的jQuery插件。 它轻巧且易于使用。这是完成的过程。定义您的textarea ID。在之前包含jQuery js文件。然后在脚本标签之间,发出jque

  • 问题内容: 我有一个使用javafx Scene来渲染某些东西的应用程序,并且我想将该渲染结果放入我在Javafx中创建的某些GUI中。我该怎么做? 基本上,有一些容器可以放入场景,然后将其放入GUI。 抱歉,如果是新手问题,我是JavaFX的新手 问题答案: 该场景只有一个顶级父节点作为根。您可以获取它并放入另一个场景。

  • 我在第一个场景上有一个简单的按钮,应该会导致第二个场景。当我点击按钮时,它改变场景,但只显示一个空白屏幕。如果我关闭原始舞台,然后显示一个包含新场景的新舞台,它会正常工作,但我不想打开一个新窗口。 这是我的控制器类: 主类:

  • http://javatar.iteye.com/blog/690845 我们平台的产品越来越多,产品的功能也越来越多。平台的产品为了适应各 BU 和部门以及产品线的需求,势必会将很多不相干的功能凑在一起,客户可以选择性的使用。为了兼容更多的需求,每个产品,每个框架,都在不停的扩展,而我们经常会选择一些扩展的扩展方式,也就是将新旧功能扩展成一个通用实现。我想讨论是,有些情况下也可以考虑增量式的扩展

  • 接口说明 新增场景分享配置 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /wish3dearth/api/scene/share/v1.0.0/addShareConfig 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN sceneId

  • 接口说明 新增场景分享配置 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /wish3dearth/api/scene/share/v1