什么都没发生当我使用方法setBounds与JButton和JLabel

时间:2015-08-06 06:50:08

标签: java layout background jbutton jlabel

当我在setBounds();上使用JLabelJButton时,没有任何事情发生?

public Window() {

    this.setExtendedState(Window.MAXIMIZED_BOTH);
    this.setDefaultCloseOperation(Window.EXIT_ON_CLOSE);

    setUndecorated(true);          
    hideMoue();

    JLabel back=new JLabel(new ImageIcon("D:\\Java\\stone\\background.png"));
    add(back);
    back.setLayout(new FlowLayout());

    l1=new JLabel("Label");
    b1=new JButton("Button");
    l1.setBounds(483, 513, 400, 60);
    l1.setBounds(483, 443, 400, 60);
    back.add(l1);
    back.add(b1);

    setSize(1366,768);  

    setVisible(true);

}

我认为布局管理器中的问题但我找不到解决方案!!

2 个答案:

答案 0 :(得分:0)

这是您正在使用的布局的预期功能,即FlowLayout。如果您希望setBounds()生效而不是setLayout(null);说了这么多,强烈建议不要使用空布局。如何放置和排列组件应留在布局管理器

答案 1 :(得分:0)

back JLabel更改为null布局。

...
JLabel back=new JLabel(new ImageIcon("D:\\Java\\stone\\background.png"));
add(back);
back.setLayout(null);    
...

密切关注你的第二个setBounds()命令。您可以在l1上设置两个命令。