【发布时间】:2013-08-23 09:52:30
【问题描述】:
我的 JFrame 中有一个 JLabel,最初使用 pack() 显示。
我的问题是,每当我尝试调整窗口大小时,JLabel 也会移动(取决于调整窗口的哪一侧),这主要是由于 JFrame 的布局。
更具体地说,每当我向上/向下调整窗口大小时,JLabel 都会保持居中。我希望不是这样。
如果我的问题令人困惑,我很抱歉。如果需要,我很乐意提供图表。
public class JavaApplication8 {
public static void main(String[] args) throws MalformedURLException {
// TODO code application logic here
JFrame window = new JFrame("test");
URL bgURL = new URL("https://si0.twimg.com/profile_images/3585146044/3b695fa73490227f792fa4e46d4a7a57.jpeg");
ImageIcon bg = new ImageIcon(bgURL);
JLabel label = new JLabel(bg);
window.add(label, BorderLayout.CENTER);
window.pack();
window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window.setLocationRelativeTo(null);
window.setVisible(true);
}
}
【问题讨论】:
-
您希望它在哪里?此外,它没有移动,而是放大了(假设您使用的是
BorderLayout)。 -
SSCCE 比图表更有用。
-
@brano88:我只显示一个 JLabel,所以我认为位置不是问题(除了设置为
pack()的窗口。 -
那你要达到什么目的呢?
-
@brano88:我提供了一个 SSCCE。请注意,如果您使用南边界调整窗口大小,则整个图像会向上移动一点。如果我想隐藏她的下半身(仅使用南调整大小)但仍然看到脸怎么办?我想我让这变得比它应该的更复杂。
标签: java swing resize jframe layout-manager