在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" />


java - JavaFX Button minWidth被忽略-LMLPHP
java - JavaFX Button minWidth被忽略-LMLPHP

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

java - JavaFX Button minWidth被忽略-LMLPHP
java - JavaFX Button minWidth被忽略-LMLPHP

我究竟做错了什么?

更新资料

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

java - JavaFX Button minWidth被忽略-LMLPHP
java - JavaFX Button minWidth被忽略-LMLPHP

minWidth设置为200时,我得到:

java - JavaFX Button minWidth被忽略-LMLPHP

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

最佳答案

JavaFX API文档说:


  默认为USE_COMPUTED_SIZE标志,这意味着
  minWidth(forHeight)将返回该区域的内部计算值
  最小宽度。
  
  将此值设置为USE_PREF_SIZE标志将导致
  minWidth(forHeight)返回区域的首选宽度,从而启用
  应用程序轻松限制该区域的可调整大小。

关于java - JavaFX Button minWidth被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53114841/

10-09 03:42