minwidth(forheight),minheight(forwidth),…是什么意思?

iklwldmw  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(335)

我在阅读javafx区域在线文档时遇到了minwidth(forheight)、minheight(forwidth)、getprefwidth(forheight)、getprefheight(forwidth)、getmaxwidth(forheight)、getmaxheight(forwidth)等。基本上是以高换宽或以宽换高。我不知道这是什么意思。例如,minwidth(for height)是什么意思?为什么里面有一个带forheight的圆括号?
任何帮助或解释将不胜感激!

dddzy1tm

dddzy1tm1#

你可以在表格中找到答案 Region::minWidth javdoc公司:

public final double minWidth(double height)

在布局期间调用以确定此节点的最小宽度。从返回值 computeMinWidth(forHeight) 除非应用程序通过设置minwidth属性覆盖最小宽度。
假设您有一个控件,您希望默认显示在不小于16:9显示比例的区域中,然后 computeMinWidth 可能是:

protected double computeMinWidth(double height) {
    return height * 16 / 9;
}

您不需要提供 minWidth(height) 因为默认实现已经足够并将调用您的自定义 computeMinWidth(height) 功能。
背景信息
除非您正在编写自己的布局处理代码(通常通过扩展 Region 和覆盖 layoutChildren() ),您不可能每次都使用 Region::minWidth 方法。正如javadoc区域中所提到的,重写更为常见 computePrefWidth(height) 在编写自己的布局代码时 layoutChildren() 方法调用 prefWidth() 方法。请注意,除非编写自己的控件,否则编写自己的布局处理代码并不常见。通常,使用现有的布局窗格并在其上设置适当的约束就足够了,并且不需要对自己的布局区域进行编码。如果考虑到插入和捕捉像素之类的因素,编写自己的布局区域可能会变得复杂,因此通常不值得麻烦,因为内置的布局窗格和控件实现会自动处理这些复杂的问题。

相关问题