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 }
随机推荐
- 两种不同的扩展Scrum的方式
两种不同的扩展Scrum的方式 1.LeSS和LeSS Huge –大型Scrum LeSS(和LeSS Huge –真正的大型程序)的合著者Craig Larman首先批评了管理,开发人员和客户传统 ...
- No matching distribution found for Tensorflow
No matching distribution found for Tensorflow 原因:python 3.7.3 版本过高 解决:安装3.6 64位
- python中a+=b 和a=a+b的结果一样吗
这里涉及到可变类型和不可变类型. 可变类型:列表,字典,集合 不可变:数字,字符串,元祖 先看一下不可变类型的运算: +=运算 >>> a, b = 1, 2 >>> ...
- 刚安装好的MathType怎么使用
对于刚接触公式编辑器的新手来说,难免会存在很多疑问:如何使用刚安装好的Word公式编辑器?安装好公式编辑器之后,我们在哪里找到这个工具呢?下面就针对大家的这些疑问,来给大家介绍下首次使用MathTyp ...
- css3系列之animation实现逐帧动画
上面这个两个简单的动画,是用 animation-timing-function: steps(); 这个属性实现的,具体如何实现,看下面: 这上面的图片,也就是我们的素材, 有些人,可能不是很理解 ...
- Kafka分布式查询引擎
1.概述 Kafka是一个分布式消息中间件系统,里面存储着实际场景中的数据.Kafka原生是不支持点查询的,如果我们想对存储在Topic中的数据进行查询,可能需要对Topic中的数据进行消费落地,然后 ...
- 音视频入门-18-手动生成一张GIF图片
* 音视频入门文章目录 * GIF 编码知识 GIF 包含的数据块: 文件头(Header) 逻辑屏幕标识符(Logical Screen Descriptor) 全局颜色表(Global Color ...
- 修改MongDB的数据类型
语法: db.集合.find({"列":{$type:2}}).forEach(function(x){ x.列=parseFloat(x.列);db.order.save(x) ...
- ERP费用报销操作与设计--开源软件诞生31
赤龙ERP费用报销讲解--第31篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- 原创题目 白银之春 Problem and Solution
白银之春 Solution 比赛用题面.题解.标程和数据生成器都挂在 git@github.com:sun123zxy/spring.git 上. Problem 白银之春 (spring.cpp/. ...