加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – FlowLayout的顶部对齐

发布时间:2020-12-14 16:38:14 所属栏目:Java 来源:网络整理
导读:我正在使用一个FlowLayout JPanel.当子组件高度不同时,面板看起来很丑.我正在寻找一种解决方案,使它们在 HTML中与顶部对齐(类似于valign =“top”). 解决方法 我意识到这个问题是在一年前被问到的,但像我一样,我认为很多人会在这个论坛帖子中绊倒,并试图做出
我正在使用一个FlowLayout JPanel.当子组件高度不同时,面板看起来很丑.我正在寻找一种解决方案,使它们在 HTML中与顶部对齐(类似于valign =“top”).

解决方法

我意识到这个问题是在一年前被问到的,但像我一样,我认为很多人会在这个论坛帖子中绊倒,并试图做出一个在bug报告中提出的解决方法(不能为我工作).

无论哪种方式,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一样需要调试的解决方法.至少我是这样想的.

祝你好运,-Asaf

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读