java Swing组件setBounds()简单用法实例分析
作者:pzy4447 时间:2023-11-23 13:35:54
本文实例讲述了java 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:
package awtDemo;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class setBoundsDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//设置panel的layout以及sieze
JPanel jpanel = new JPanel();
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);
}
}
运行效果如下:
程序输出如下:
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]
希望本文所述对大家java程序设计有所帮助。
来源:https://www.cnblogs.com/pzy4447/p/4574797.html
标签:java,Swing
0
投稿
猜你喜欢
Java ThreadLocal的使用详解
2023-11-29 04:48:43
C# 文件上传下载(Excel导入,多线程下载)功能的实现代码
2021-12-09 20:16:34
SpringBoot+Vue.js实现前后端分离的文件上传功能
2023-08-10 08:11:18
如何安装java的运行环境IDEA
2022-09-20 10:42:38
查找算法之二分查找的C++实现
2022-05-27 07:24:17
Android 6.0调用相机图册崩溃的完美解决方案
2022-10-13 02:00:39
Android笔记之:App应用之启动界面SplashActivity的使用
2023-03-21 19:05:56
java 中ArrayList与LinkedList性能比较
2023-03-28 05:45:43
Java java.sql.Timestamp时间戳案例详解
2023-11-10 13:50:47
Android 自定义组件成JAR包的实现方法
2023-04-08 17:56:39
详解Java编程中包package的内容与包对象的规范
2022-03-06 17:48:08
Java通过HttpClient进行HTTP请求的代码详解
2022-06-04 09:50:20
java仿QQ微信聊天室功能的实现
2022-05-14 17:44:28
springboot中.yml文件参数的读取方式
2021-06-20 00:57:51
基于Android实现ListView圆角效果
2022-01-18 01:40:33
ShardingSphere解析SQL示例详解
2023-11-23 13:57:55
Java运行时数据区划分原理解析
2023-07-13 22:05:48
C#对list列表进行随机排序的方法
2021-10-31 20:00:17
Java如何优雅替换if-else语句
2023-02-23 10:30:27
Java 中 hashCode() 与 equals() 的关系(面试)
2023-08-29 18:03:57