当前位置:网站首页>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);
}
}
边栏推荐
- Leakage detection relay jy82-2p
- Actual cases and optimization solutions of cloud native architecture
- 注释与注解
- JS how to convert seconds into hours, minutes and seconds display
- Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
- [MySQL practice of massive data with high concurrency, high performance and high availability -8] - transaction isolation mechanism of InnoDB
- "In simple language programming competition (basic)" part 1 Introduction to language Chapter 3 branch structure programming
- 【微服务】Nacos集群搭建以及加载文件配置
- Gridview出现滚动条,组件冲突,如何解决
- The data mark is a piece of fat meat, and it is not only China Manfu technology that focuses on this meat
猜你喜欢
VB. Net simple processing pictures, black and white (class library - 7)
补某视频网站的js,进行视频解密
拓扑排序和关键路径的图形化显示
Take you to quickly learn how to use qsort and simulate qsort
接地继电器DD-1/60
The data mark is a piece of fat meat, and it is not only China Manfu technology that focuses on this meat
Enterprise level log analysis system elk (if things backfire, there must be other arrangements)
(4) Canal multi instance use
724. 寻找数组的中心下标
Halcon image calibration enables subsequent image processing to become the same as the template image
随机推荐
[excel] PivotChart
Kubernets first meeting
[MySQL practice of massive data with high concurrency, high performance and high availability -8] - transaction isolation mechanism of InnoDB
LM small programmable controller software (based on CoDeSys) note 22: error 4268/4052
Thinkphp6.0 middleware with limited access frequency think throttle
VB.net 调用FFmpeg简单处理视频(类库——6)
Build an Internet of things infrared temperature measuring punch in machine with esp32 / rush to work after the Spring Festival? Baa, no matter how hard you work, you must take your temperature first
接地继电器DD-1/60
19.Frambuffer应用编程
Appearance of LabVIEW error dialog box
Letter meaning and parameter abbreviation of optical module Daquan
el-select如何实现懒加载(带搜索功能)
RSA加密应用常见缺陷的原理与实践
Qt发布多语言国际化翻译
BeanFactoryPostProcessor 与 BeanPostProcessor 相关子类概述
How to clone objects
JS扁平化数形结构的数组
谷歌 Chrome 浏览器将支持选取文字翻译功能
VB. Net calls ffmpeg to simply process video (class Library-6)
Online shrimp music will be closed in January next year. Netizens call No