【问题标题】:What is a component's baseline in JavaJava 中组件的基线是什么
【发布时间】:2016-10-23 08:50:16
【问题描述】:

非常简单的问题:

Java 中组件的基线是什么?

The documentation 没有提供关于“基线”是什么的答案,只是描述了 LayoutManagers 对它的使用。是的,答案可能很简单,但我不想玩猜谜游戏。

【问题讨论】:

    标签: java swing user-interface components baseline


    【解决方案1】:

    来自FontMetrics的JavaDocs

    当应用程序要求将字符放置在位置 (x, y) 时,会放置字符以使其参考点(在随附图像中显示为点)放置在该位置。参考点指定了一条称为字符基线的水平线。在正常打印中,字符的基线应该对齐。

    更正式地说,组件的基线是在组件中放置文本的假想线。通常,它是组件左上角和文本基线之间的像素距离。所以为了得到这个基线,需要传递组件的高度和宽度。不需要每个组件都有基线,对于这些组件,此方法返回 -1。

    此方法在组件布局期间使用,因此此时它不能使用实际尺寸,因为组件仍在调整大小/重新定位。因此它需要传递宽度和高度。

    @Frakcool 提到的供您参考:

    “查找内容:”下的行是基线。

    【讨论】:

    • 那么就组件而言,为什么 getBaseline() 需要一个宽度和一个高度作为参数? width 和 height 参数与组件的大小有什么不同?
    • 还检查“垂直对齐”下的图像:docs.oracle.com/javase/tutorial/uiswing/layout/… 它应该会给你一个想法。 @Sanjeev 我想它补充了你的解释
    • 好的,我现在明白什么是基线了。最后一个问题是,如果组件的大小可以通过 Component.getSize() 轻松获得,为什么还需要将组件的大小作为参数传递?
    猜你喜欢
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2012-01-02
    • 2014-12-18
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多