当前位置:网站首页>Component、Container容器常用API详解:Frame、Panel、ScrollPane
Component、Container容器常用API详解:Frame、Panel、ScrollPane
2022-07-04 05:35:00 【斯文~】
Container继承体系
1.Window
是可以独立存在的顶级窗口,默认使用BorderLayout
管理其内部组件布局;
2.Panel
可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout
管理其内部组件布局;
3. ScrollPane
是 一个带滚动条的容器,它也不能独立存在,默认使用 BorderLayout
管理其内部组件布局;
常用API
Component
作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等。
方法签名 | 方法功能 |
---|---|
setLocation(int x, int y) | 设置组件的位置 |
setSize(int width, int height) | 设置组件的大小 |
setBounds(int x, int y, int width, int height) | 同时设置组件的位置、大小 |
setVisible(Boolean b) | 设置该组件的可见性 |
Container
作为容器根类,提供了如下方法来访问容器中的组件。
方法签名 | 方法功能 |
---|---|
Component add(Component comp) | 向容器中添加其他组件 (该组件既可以是普通组件,也可以是容器) , 并返回被添加的组件 |
Component getComponentAt(int x, int y) | 返回指定点的组件 |
int getComponentCount() | 返回该容器内组件的数量 |
Component[] getComponents() | 返回该容器内的所有组件 |
容器演示
window
import java.awt.*;
public class FrameDemo {
public static void main(String[] args) {
//1.创建窗口对象
Frame frame = new Frame("这是第一个窗口容器");
//设置窗口的位置和大小
frame.setBounds(100,100,500,300);
//设置窗口可见
frame.setVisible(true);
}
}
Panel
由于IDEA默认使用utf-8进行编码,但是当前我们执行代码是是在windows系统上,而windows操作系统的默认编码是gbk,所以会乱码,如果出现了乱码,那么只需要在运行当前代码前,设置一个jvm参数 -Dfile.encoding=gbk
即可。
public class PanelDemo {
public static void main(String[] args) {
//1.创建Frame容器对象
Frame frame = new Frame("这里在测试Panel");
//2.创建Panel容器对象
Panel panel = new Panel();
//3.往Panel容器中添加组件
panel.add(new TextField("这是一个测试文本"));
panel.add(new Button("这是一个测试按钮"));
//4.把Panel添加到Frame中
frame.add(panel);
//5.设置Frame的位置和大小
frame.setBounds(30,30,500,300);
//6.设置Frame可见
frame.setVisible(true);
}
}
ScrollPane
程序明明向 ScrollPane 容器中添加了 一个文本框和一个按钮,但只能看到 一个按钮,却看不到文本框 ,这是为什么 呢?这是因为ScrollPane
使用 BorderLayout
布局管理器的缘故,而 BorderLayout
导致了该容器中只有一个组件被显示出来。
import java.awt.*;
public class ScrollPaneDemo {
public static void main(String[] args) {
//1.创建Frame窗口对象
Frame frame = new Frame("这里测试ScrollPane");
//2.创建ScrollPane对象,并且指定默认有滚动条
ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
//3.往ScrollPane中添加组件
scrollPane.add(new TextField("这是测试文本"));
scrollPane.add(new Button("这是测试按钮"));
//4.把ScrollPane添加到Frame中
frame.add(scrollPane);
//5.设置Frame的位置及大小
frame.setBounds(30,30,500,300);
//6.设置Frame可见
frame.setVisible(true);
}
}
边栏推荐
- VB. Net GIF (making and disassembling - optimizing code, class library - 5)
- 【雕爷学编程】Arduino动手做(105)---压电陶瓷振动模块
- Signification des lettres du module optique et abréviation des paramètres Daquan
- What is MQ?
- 如何展开Collapse 的所有折叠面板
- el-select如何实现懒加载(带搜索功能)
- 云原生架构实战案例及优化解决方案
- Grounding relay dd-1/60
- Excel 比较日器
- [high concurrency, high performance and high availability of massive data MySQL practice-7] - memory data drop disk
猜你喜欢
随机推荐
ansys命令
Topological sorting and graphical display of critical path
Penetration tool - sqlmap
Halcon图片标定,使得后续图片处理过后变成与模板图片一样
谷歌 Chrome 浏览器将支持选取文字翻译功能
left_and_right_net可解释性设计
配置交叉编译工具链和环境变量
Enterprise level log analysis system elk (if things backfire, there must be other arrangements)
left_and_right_net正常版本
gslb(global server load balance)技术的一点理解
FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 锁机制 分析
我的NVIDIA开发者之旅——优化显卡性能
Integer type of C language
如何获取el-tree中所有节点的父节点
VB. Net GIF (making and disassembling - optimizing code, class library - 5)
How to expand all collapse panels
[excel] PivotChart
BUU-Real-[PHP]XXE
Win10 clear quick access - leave no trace
input显示当前选择的图片