忽略JavaFX按钮最小宽度
在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
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,这很有效!请将其作为答案发布,以便我可以接受:)