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 }

随机推荐

  1. 两种不同的扩展Scrum的方式

    两种不同的扩展Scrum的方式 1.LeSS和LeSS Huge –大型Scrum LeSS(和LeSS Huge –真正的大型程序)的合著者Craig Larman首先批评了管理,开发人员和客户传统 ...

  2. No matching distribution found for Tensorflow

    No matching distribution found for Tensorflow 原因:python 3.7.3 版本过高 解决:安装3.6  64位

  3. python中a+=b 和a=a+b的结果一样吗

    这里涉及到可变类型和不可变类型. 可变类型:列表,字典,集合 不可变:数字,字符串,元祖 先看一下不可变类型的运算: +=运算 >>> a, b = 1, 2 >>> ...

  4. 刚安装好的MathType怎么使用

    对于刚接触公式编辑器的新手来说,难免会存在很多疑问:如何使用刚安装好的Word公式编辑器?安装好公式编辑器之后,我们在哪里找到这个工具呢?下面就针对大家的这些疑问,来给大家介绍下首次使用MathTyp ...

  5. css3系列之animation实现逐帧动画

    上面这个两个简单的动画,是用 animation-timing-function: steps();  这个属性实现的,具体如何实现,看下面: 这上面的图片,也就是我们的素材, 有些人,可能不是很理解 ...

  6. Kafka分布式查询引擎

    1.概述 Kafka是一个分布式消息中间件系统,里面存储着实际场景中的数据.Kafka原生是不支持点查询的,如果我们想对存储在Topic中的数据进行查询,可能需要对Topic中的数据进行消费落地,然后 ...

  7. 音视频入门-18-手动生成一张GIF图片

    * 音视频入门文章目录 * GIF 编码知识 GIF 包含的数据块: 文件头(Header) 逻辑屏幕标识符(Logical Screen Descriptor) 全局颜色表(Global Color ...

  8. 修改MongDB的数据类型

    语法: db.集合.find({"列":{$type:2}}).forEach(function(x){ x.列=parseFloat(x.列);db.order.save(x) ...

  9. ERP费用报销操作与设计--开源软件诞生31

    赤龙ERP费用报销讲解--第31篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...

  10. 原创题目 白银之春 Problem and Solution

    白银之春 Solution 比赛用题面.题解.标程和数据生成器都挂在 git@github.com:sun123zxy/spring.git 上. Problem 白银之春 (spring.cpp/. ...