首页 > 解决方案 > JavaFX 按钮 minWidth 被忽略

问题描述

在 JavaFX 中,当组件的minWidth设置为USE_COMPUTED_SIZE时,组件的最小宽度是根据其内容计算的。

虽然我已经成功地将它用于许多组件,但它似乎并没有按预期工作Button

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

<?import javafx.scene.control.Button?>


<Button mnemonicParsing="false" text="This should always be visible" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" />

在此处输入图像描述 在此处输入图像描述

minWidth所以我测试了设置为 300时会发生什么:

在此处输入图像描述 在此处输入图像描述

我究竟做错了什么?

更新

为了测试舞台是否忽略了按钮minWidth,我将按钮包装到 HBox 中并在按钮周围添加了边距。minWidth设置为,USE_COMPUTED_SIZE结果如下:

在此处输入图像描述 在此处输入图像描述

当我设置minWidth为 200 时,我得到:

在此处输入图像描述

这很好 - 除了我需要计算大小。

标签: javajavafx

解决方案


JavaFX API 文档说:

默认为USE_COMPUTED_SIZE标志,这意味着 minWidth(forHeight)将返回区域内部计算的最小宽度。

将此值设置为USE_PREF_SIZE标志将导致 minWidth(forHeight)返回区域的首选宽度,使应用程序能够轻松限制区域的可调整性。


推荐阅读