忽略JavaFX按钮最小宽度

忽略JavaFX按钮最小宽度,java,javafx,Java,Javafx,在JavaFX中,当组件的minWidth设置为USE\u COMPUTED\u SIZE时,将根据其内容计算组件的最小宽度 虽然我已经成功地将其用于许多组件,但对于按钮,它似乎并不像预期的那样工作: <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <Button mnemonicParsing="false" text="This should alw

在JavaFX中,当组件的
minWidth
设置为
USE\u COMPUTED\u SIZE
时,将根据其内容计算组件的最小宽度

虽然我已经成功地将其用于许多组件,但对于
按钮
,它似乎并不像预期的那样工作:

<?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时发生的情况:

我做错了什么

更新

为了测试stage是否忽略了按钮的
minWidth
,我将按钮包装到一个HBox中,并在按钮周围添加了一个边距。 将
minWidth
设置为
USE\u COMPUTED\u SIZE
,结果如下:

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


这很好-只是我需要计算大小。

JavaFXAPI文档说:

默认设置为
USE\u COMPUTED\u SIZE
标志,这意味着
minWidth(forHeight)
将返回区域的内部计算值 最小宽度

将此值设置为
USE\u PREF\u SIZE
标志将导致
minWidth(forHeight)
返回区域的首选宽度,启用 应用程序可以轻松限制区域的大小


您应该使用
使用PREF\u SIZE
USE_COMPUTED_SIZE
是控件认为它可以呈现自己的大小-对于
按钮,它非常小,因为它可以为文本放置
省略号。使用
USE_COMPUTED_SIZE
不会阻止省略号。(只需打印
按钮的结果。第一次布局通过后,minWidth(-1)
)使用
minWidth
使用\u PREF\u SIZE
prefWidth
使用\u COMPUTED\u SIZE
将正确设置约束,但调整舞台(和场景)的大小可能会迫使节点违反其大小约束。您需要设置用于显示场景的舞台的
minWidth
。@fabian,这很有效!请将其作为答案发布,以便我可以接受:)