【问题标题】:Responsive CheckBox JAVAFX响应式复选框 JAVAFX
【发布时间】:2021-01-05 14:34:22
【问题描述】:

这是我的第一个 javaFX 项目。我正在处理的项目包括一个可以调整应用程序窗口大小的功能。调整窗口大小后,我希望窗口中的所有对象都会根据窗口大小按比例增加。我没有让它与“CheckBox”对象一起使用。

正如您在下面以红色突出显示的那样,在窗口调整大小之前和之后显示了一个 CheckBox 对象。在调整大小之前,红色复选框很好地适合绿色框,但在调整大小之后,红色复选框是正确的(缩放)宽度,但没有像我预期的那样增加高度。我应该从哪里着手让我的 CheckBox 对象在垂直方向上更具响应性?

最小化 最大化

如您所见(红色),复选框按我的预期水平缩放,但不会垂直缩放以占用剩余空间!

【问题讨论】:

  • 不清楚您的期望。我还注意到顶部字段中的圆角存在问题 - 查看底部,您会看到尖角溢出到圆角框下方。
  • 抱歉含糊不清,我该如何澄清我的问题?我只需要知道如何动态调整 CheckBox 对象的大小。例如,如果我全屏显示我的窗口,我希望我的复选框对象的大小与窗口大小的总增加成正比
  • 阅读参考的帮助页面并采取相应的行动(您可以编辑您的问题以添加所需的示例:)
  • 这能回答你的问题吗? Javafx resize components when fullscreen

标签: javafx responsive-design responsive


【解决方案1】:

经过大量研究和有用的回复,我收集了一个可行的解决方案。

创建了一个“DoubleProperty”对象,并绑定到包含我的复选框的容器的宽度。将此容器称为“dryLeafGridPane”。

DoubleProperty checkboxFontSize = new SimpleDoubleProperty(10);
checkboxFontSize.bind((dryLeafGridPane.widthProperty().divide(36)));

.divide(36) 将 CheckBox 的字体大小缩放为网格窗格宽度的 1/36。 最后,我只是使用 CSS 添加新的字体大小。

dryLeafGridPane.styleProperty().bind(Bindings.concat("-fx-font-size: ", checkboxFontSize.asString()));

这是一个gif 的(稍微多一点的)响应式应用程序!

【讨论】:

  • 抱歉,这样更好吗?
  • 是的,谢谢 :) 有点挑剔:您可能会考虑将代码格式化为块(前导 4 个空格)与内联
【解决方案2】:

您可以选择在全屏时增加根窗格上的字体大小。例如:

rootPane.setStyle("-fx-font-size: 150%;");

但这并不完美……似乎选中的框的大小不随字体缩放。

【讨论】:

    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多