java swing 布局,设置jpanel大小,位置

jpanel.setsize。。。这个为什么不生效?总是布满整个窗口,我只想一小块在中间。
注意:这个方法如果不行,有别的方法吗? 绝对布局除外图片图片

3个回答

JFrame你设置Layout了吗? 如果没设置的话,JFrame的布局管理器默认是BorderLayout,添加的组件如果不指明位置默认添加进BorderLayout.CENTER。
它会向上下左右扩展,占满整个空间。

km4gedan
km4gedan 3q
接近 5 年之前 回复

/运行一下这个代码,看是不是你要的效果

public class GridBagLayoutTS extends JFrame {

public GridBagLayoutTS(){
    JPanel p = new JPanel();
    JPanel user = new JPanel();
    user.add(  new JLabel("用户名:") );
    user.add(  new JTextField(20));
    JPanel pwd = new JPanel();
    pwd.add(new JLabel("密    码:"));
    pwd.add(new JTextField(20));
    JPanel btn = new JPanel();
    btn.add(new JButton("登录"));
    btn.add(  new JButton("退出"));

    p.setLayout( new GridLayout(3, 1) );
    p.add(user);
    p.add(pwd);
    p.add(btn);

    setLayout( new GridBagLayout() );
    add( new JPanel(), new GridBagConstraints(0,0,1,1,0.5,0.5,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(0, 0, 0, 0),
            0,0));
    add( new JPanel(), new GridBagConstraints(0,1,1,1,0.5,0.5,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(0, 0, 0, 0),
            0,0));
    add( p , new GridBagConstraints(1,1,1,1,0,0,
            GridBagConstraints.CENTER,
            GridBagConstraints.NONE,
            new Insets(0, 0, 0, 0),
            0,0));
    add( new JPanel(), new GridBagConstraints(2,1,1,1,0.5,0.5,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(0, 0, 0, 0),
            0,0));
    add( new JPanel(), new GridBagConstraints(0,2,1,1,0.5,0.5,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(0, 0, 0, 0),
            0,0));
    setLocationRelativeTo(null);
    setSize(new Dimension(800, 500));
    setVisible(true);
}

public static void main(String[] args) {
    new GridBagLayoutTS();
}

}
//运行一下这个代码,看是不是你要的效果

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐