我想在边框布局的北部位置创建一个JLabel(包含图像),自动调整大小以匹配边框布局中心位置的组件的首选宽度。
目前我唯一能做到这一点的方法是在北方位置创建另一个面板,并在该面板的中心位置添加标签。
如果没有额外的面板,有没有办法做到这一点?
答案 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。另外,使用第二个面板有什么问题?