gpt4 book ai didi

java - FlowLayout 的顶部对齐

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:52:29 25 4
gpt4 key购买 nike

我正在使用 FlowLayout JPanel。当子组件高度不同时,面板看起来很难看。我正在寻找一种使它们顶部对齐的解决方案(类似于 HTML 中表格单元格的 valign="top")。

最佳答案

我知道这个问题是在一年多以前提出的,但像我一样,我认为很多人会偶然发现这篇论坛帖子,然后尝试像错误报告中建议的那样做出解决方法(只是对我没用)仅供引用)。

自 JDK 1.6 以来,无论哪种方式都有更好的答案。 Flowlayout 有以下方法:

public void setAlignOnBaseline(boolean alignOnBaseline)

如果您在 flowlayout 上使用此方法并将其设置为 true,则当 flowlayout 布置组件时,它将检查每个组件的基线并沿该基线对齐组件。

但这不是您需要做的全部。

有问题的组件必须以这种方式覆盖以下两个方法:

@Override
public Component.BaselineResizeBehavior getBaselineResizeBehavior() {
return Component.BaselineResizeBehavior.CONSTANT_ASCENT;
}

@Override
public int getBaseline(int width, int height) {
return 0;
}

它们是 JComponent 中的方法,布局和布局管理器使用这些方法来确定如何布局组件。

如果您采取上述步骤,所有组件都会沿着每一行的顶部对齐。当然,如果您只想使用像 JButton 这样的组件,您显然必须扩展它才能实现您想要的目标……但它不像使用必须调试的解决方法覆盖 layoutcontainer 那样工作。至少我是这么认为的。

祝你好运,-阿萨夫

关于java - FlowLayout 的顶部对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com