如何创建在Borderlayout North Position中自动调整大小的组件

时间:2010-07-27 01:03:24

标签: java swing

我想在边框布局的北部位置创建一个JLabel(包含图像),自动调整大小以匹配边框布局中心位置的组件的首选宽度。

目前我唯一能做到这一点的方法是在北方位置创建另一个面板,并在该面板的中心位置添加标签。

如果没有额外的面板,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

无需添加额外的面板,因为我看到你只需要北方的Label(即Top)。 在borderlayout中添加到北方的组件将占用完整的宽度,高度将优先于组件的高度。这取决于各种因素。

您只需要在中心设置标签文字和图片。看一下标签的对齐api。

详细说明: http://www.ehow.com/way_5579409_java-borderlayout-tutorial.html

e.g。

http://www.java2s.com/Tutorial/Java/0240__Swing/1340__BorderLayout.htm

http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/border.html

答案 1 :(得分:0)

好吧,我不确定我理解这个问题。 JLabel不会自动“自动调整”。标签的大小是添加到标签的Icon的大小。因此,即使宽度发生变化,图像的大小也不会改变。

也许你可以使用:

label.setAlignmentX(...);
label.setHorizontalAligment(...);

将标签水平居中于面板的北部,如果这就是你的问题。

为什么不发布显示您正在做的事情的当前工作SSCCE。另外,使用第二个面板有什么问题?