首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Swing FlowLayout对齐

Java Swing FlowLayout对齐
EN

Stack Overflow用户
提问于 2012-03-04 15:14:53
回答 3查看 32.1K关注 0票数 5

我是Java的新手,我正在尝试创建一个GUI应用程序,其中包含一些标签、按钮和文本字段。程序非常简单,我只想使用默认布局,即FlowLayout。我设法将所有东西都放置和调整好了,但唯一不起作用的似乎是对齐。我想使用特定的对齐方式放置按钮和文本字段,但每当我设置对齐方式时,它都会将文本移动到对象内部,而不是对象本身。例如,我写道:

代码语言:javascript
复制
 button.setHorizontalAlignment(JButton.RIGHT);

但它看起来像是在按钮内部对齐文本,而不是按钮本身。有没有办法对齐按钮本身,而不是它里面的文本?

我知道使用其他类型的布局(例如BoxLayout)可能会更容易对齐,但我只想在这个布局中使用FlowLayout,除非不可能使用FlowLayout对齐它们(我不这么认为)。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-04 15:52:26

请参阅构造函数FlowLayout(int align)

使用指定的对齐和默认的5个单位的水平和垂直间隙构建新的FlowLayout。对齐参数的值必须是FlowLayout.LEFTFlowLayout.RIGHTFlowLayout.CENTERFlowLayout.LEADINGFlowLayout.TRAILING之一。

看起来您想要的是this answer中的FlowLayout.RIGHT (顶部的组合框和复选框)。

票数 14
EN

Stack Overflow用户

发布于 2012-03-04 15:26:35

setHorizontalAlignment of AbstractButton设置图标text的水平对齐方式,而不是按钮的位置。AbstractButton的默认值是SwingConstants.CENTER。

如果您想在将button..set添加到面板或frame..something时将其与位置对齐,请如下所示...

代码语言:javascript
复制
p.add(button, BorderLayout.SOUTH);//using `BorderLayout`

流式布局通常用于在面板中排列按钮。它将从左到右排列按钮,直到同一行中没有更多的按钮。

票数 2
EN

Stack Overflow用户

发布于 2012-03-04 15:27:43

我不认为单独使用FlowLayout可以做到这一点。

我的建议是:

  • 考虑切换到MigLayout,这是一种功能更强大的布局机制。MigLayout基本上允许您在灵活的网格中定位组件,并且您可以在每个网格单元格中设置组件的特定对齐方式。
  • 当您想对子组件进行对齐时,将它们放入嵌套的JPanel中通常也是有意义的。然后,您可以对此JPanel使用单独的布局(也许是BorderLayout?)这将使您能够获得所需的精确对齐方式。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9553098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档