java中borderpane_如何使用MediaView使StackPane填充JavaFX中的BorderPane

嘿,我似乎无法弄清楚我的代码是什么问题 . 我正在构建一个非常简单的媒体播放器 . 我有一个BorderPane作为根场景 . 顶部节点是Menu,底部是StackPane . 我有一个StackPane,它包含MediaView和工具栏 . 我希望每当用户打开一个新文件时,StackPane将调整大小为MediaViews的新宽度 . 高度是固定的 . 我理解BorderPane如何定义其大小(从阅读文档)的方式是孩子们的pref大小 . StackPane也从它的子节点定义它的大小 . 以下是文档所说的内容:可调整范围

堆栈窗格的父级将在布局期间调整堆栈窗格可调整大小范围内的堆栈窗格 . 默认情况下,stackpane会根据其内容计算此范围,如下表所示 .

最低:

width:左/右插图加上孩子最小宽度的最大值 .

高度:顶部/底部插入加上儿童最小高度的最大值 .

首选:

width:左/右插图加上子节点宽度的最大值 .

高度:顶部/底部插入加上儿童的最高高度 .

问题是您无法在MediaView上设置最小值,最大值或首选大小,只能设置适合的高度或宽度 . 我怎样才能计算尺寸以使其正确匹配?这是我的代码目前的情况

// Initially set bottom to an empty pane

nullPane.setPrefSize(600,400);

mainPane.setTop(menuBar);

mainPane.setBottom(nullPane);

stackPane.getChildren().addAll(mediaView, toolBar);

mediaView.setFitHeight(mediaHeight); // mediaHeight = 500

mediaView.setPreserveRatio(true);

mediaView.setMediaPlayer(mediaPlayer);

mainPane.getChildren().remove(nullPane);

mainPane.setBottom(stackPane);

非常感谢任何帮助或建议 . 谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值