java的setbounds_Swing-setBounds()用法-入门

先看API:

public void setBounds(Rectangle r)

移动组件并调整其大小,使其符合新的有界矩形 r。由 r.x 和 r.y 指定组件的新位置,由 r.width 和 r.height 指定组件的新大小

参数: r - 此组件的新的有界矩形

从API来看,该方法的作用相当于setLocation()与 setSize()的总和。在实际使用时,需将容器的layout设置为null,因为使用布局管理器时,控件的位置与尺寸是由布局管理器来分配的。需要注意的是,这时必须手动指定容器的尺寸,因为空的布局管理器会将容器自身的PreferredSize清零,导致容器无法在GUI上显示。因此,如果容器在上级容器中使用布局管理器排列,那么需使用setPreferredSize(),如果容器在上级容器中仍然手动排列,那么对容器使用setBounds()即可。下面是测试demo:

importjava.awt.Dimension;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;/** 2015-06-14*/

public classsetBoundsDemo {public static voidmain(String[] args) {//TODO Auto-generated method stub//设置panel的layout以及sieze

JPanel jpanel = newJPanel();

System.out.println("default PreferredSize is " +jpanel.getPreferredSize());

System.out.println("default Size is " +jpanel.getSize());

jpanel.setLayout(null);

System.out.println("In null layout, the PreferredSize is " +jpanel.getPreferredSize());

System.out.println("In null layout, the Size is " +jpanel.getSize());

jpanel.setPreferredSize(new Dimension(400, 400));//添加按钮

JButton button11 = new JButton("setBounds");

JButton button12= new JButton("setLocationAndSetSize");

button11.setBounds(20, 20, 100, 100);

button12.setLocation(250, 250);

button12.setSize(100, 100);

jpanel.add(button11);

jpanel.add(button12);//设置窗体属性

JFrame frame = new JFrame("setBoundsDemo");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(jpanel);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

}

运行效果如下:

d2665da8faf43bb3158f0caeff31ed26.png

运行效果图

程序输出如下:

default PreferredSize is java.awt.Dimension[width=10,height=10]

default Size is java.awt.Dimension[width=0,height=0]

In null layout, the PreferredSize is java.awt.Dimension[width=0,height=0]

In null layout, the Size is java.awt.Dimension[width=0,height=0]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值