AWT02-ContainerAPI
1.体系
Object
-Component
-Container
Window:窗口容器
Frame:创建窗口
Dialog:创建对话框
Panel:内嵌容器
Applet
ScrollPane:含有滚动条的容器
Window是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局。
Panel可以容纳其他组件,但是不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局。
ScrollPane是一个带滚动条的容器,它也不能独立存在,默认使用BorderLayout管理其内部组件布局。
2.常用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() | 返回该容器内所有的组件。 |
3.Window演示
步骤:
1.创建一个窗口对象。
2.指定窗口位置和大小。
3.设置窗口对象可见性。
1 import java.awt.*;
2
3 public class WindowDemo {
4 public static void main(String[] args) {
5 Frame MainWindow = new Frame("这是我的第一个AWT窗口");
6 MainWindow.setLocation(500,250);
7 MainWindow.setSize(500,300);
8 MainWindow.setVisible(true);
9 }
10 }
4.Panel演示
1.创建一个Window对象,因为panel和ScrollPane都不能独立存在,必须依附于其他容器。
2.创建一个panel对象
3.添加一个文本框和一个按钮组件,放入panel
4.将panel放入window
5.设置Window位置、大小、可见性
1 import java.awt.*;
2
3 public class PanelDemo {
4 public static void main(String[] args) {
5 Frame f = new Frame("这是Panel演示");
6 Panel p = new Panel();
7 p.add(new TextField("please input..."));
8 p.add(new Button("Submit"));
9 f.add(p);
10 f.setLocation(500,250);
11 f.setSize(500,300);
12 f.setVisible(true);
13 }
14 }
5.ScrollPane演示
1.创建一个Window对象,因为panel和ScrollPane都不能独立存在,必须依附于其他容器。
2.创建一个Scrollpane对象
3.添加一个文本框和一个按钮组件,放入panel
4.将panel放入window
5.设置Window位置、大小、可见性
1 import java.awt.*;
2
3 public class ScrollPaneDemo {
4 public static void main(String[] args) {
5 Frame f = new Frame("ScrollPane演示");
6 ScrollPane s = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
7 s.add(new TextField("please input..."));
8 s.add(new Button("提交"));
9 f.add(s);
10 f.setLocation(500,250);
11 f.setSize(500,300);
12 f.setVisible(true);
13 }
14 }
随机推荐
- 面试腾讯,字节跳动,华为90%会被问到的HashMap!你会了吗?
简介 HashMap是平常使用的非常多的,内部结构是 数组+链表/红黑树 构成,很多时候都是多种数据结构组合. 我们先看一下HashMap的基本操作: new HashMap(n); 第一个知识点 ...
- Python Api接口自动化测试框架 代码写用例
公司新来两个妹子一直吐槽这个接口测试用例用excel维护起来十分费脑费事,而且比较low(内心十分赞同但是不能推翻自己),妹子说excel本来就很麻烦的工具,于是偷偷的进行了二次改版. 变更内容如下: ...
- Mac 安装Homebrew慢的问题解决
一开始安装,在官网上的命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...
- 导出mysql内数据 python建倒排索引
根据mysql内数据,python建倒排索引,再导回mysql内. 先把mysql内的数据导出,先导出为csv文件,因为有中文,直接打开csv文件会乱码,再直接改文件的后缀为txt,这样打开时不会是乱 ...
- IPSec传输模式/隧道模式下ESP报文的装包与拆包过程
IPSec协议:IPsec将IP数据包的内容先加密再传输,即便中途被截获,由于缺乏解密数据包所必要的密钥,攻击者也无法获取里面的内容. 传输模式和隧道模式:IPsec对数据进行加密的方式有两种:传输模 ...
- Java面试专题-集合篇(2)
- moviepy音视频剪辑:TextClip.list(font)和search搜索字体报错UnicodeDecodeError:utf-8 codec cannott decode byte 问题
☞ ░ 前往老猿Python博文目录 ░ 在moviepy2.0.0.Dev版本中,执行如下语句: from moviepy.editor import * TextClip.search('gb', ...
- Python中sort、sorted的cmp参数废弃之后使用__lt__支持复杂比较的方法
Python2.1以前的排序比较方法只提供一个cmp比较函数参数,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了cmp参数.相应地从Python ...
- 第14.18节 爬虫实战4: request+BeautifulSoup+os实现利用公众服务Wi-Fi作为公网IP动态地址池
写在前面:本文相关方法为作者独创,仅供参考学习爬虫技术使用,请勿用作它途,禁止转载! 一. 引言 在爬虫爬取网页时,有时候希望不同的时候能以不同公网地址去爬取相关的内容,去网上购买地址资源池是大部分人 ...
- SUCTF pythonigx
0x00知识点 nginx配置 配置文件存放目录:/etc/nginx主配置文件:/etc/nginx/conf/nginx.conf管理脚本:/usr/lib64/systemd/system/ng ...