加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JavaFX – 如何制作ComboBox hgrow?

发布时间:2020-12-14 05:09:45 所属栏目:Java 来源:网络整理
导读:我有 JavaFX(8),HBox,ComboBox和HGrow的问题. HGrow不能与ComboBox结合使用. (INFO:使用TextField(而不是ComboBox),它按预期工作!) 这是我的FXML代码: ?xml version="1.0" encoding="UTF-8"??import java.lang.*??import java.util.*??import javafx.scen
我有 JavaFX(8),HBox,ComboBox和HGrow的问题.
HGrow不能与ComboBox结合使用.
(INFO:使用TextField(而不是ComboBox),它按预期工作!)

这是我的FXML代码:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<VBox prefHeight="117.0" prefWidth="285.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.test.TestController">
  <children>
     <HBox prefHeight="105.0" prefWidth="196.0" VBox.vgrow="ALWAYS">
     <children>
        <ComboBox fx:id="fxCboTest" prefHeight="25.0" prefWidth="62.0" HBox.hgrow="ALWAYS" />
     </children>
    </HBox>
  </children>
</VBox>

本准则将导致:

我也试过以下代码(没有成功,这段代码什么都不做):

HBox.setHgrow(uiController.fxCboTest,Priority.ALWAYS);

有没有人知道如何制作ComboBox HGrow?

解决方法

这是我自己的问题的答案.
经过一些测试,我发现当将Max Width设置为MAX_VALUE时,它可以工作:

这将导致以下来自SceneBuilder的code / xml:

...
<children>
   <ComboBox maxWidth="1.7976931348623157E308" prefWidth="150.0" HBox.hgrow="ALWAYS" />
</children>
...

其中1.7976931348623157E308看起来像Double.MAX_VALUE.
这也适用于Hbox中的多个控件.

在我看来,这不是非常/持续.我仍然不知道为什么HGrow不能用于ComboBox.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读