0

JLabel我的JFrame 中有一个,最初使用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);

    }   
}
4

1 回答 1

3

使用不同的布局管理器:

window.setLayout(new FlowLayout());

对于这个例子来说就足够了。

如果您想继续使用BorderLayout,另一种可能性是将标签放在不同的位置:

window.add(label, BorderLayout.NORTH);

另请注意,您应该只从事件调度线程访问 swing 组件。

于 2013-08-23T10:24:13.740 回答