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 }
随机推荐
- 从 3.1 到 5.0 —— OpenReservation 更新记
OpenReservation 从 asp.net core 3.1 到 5.0 Intro OpenReservation 是一个开源的预约系统,最初的版本是我们学校的活动室预约系统,现在正逐步变成 ...
- 即时编译器 (JIT) 详解
最近听我的导师他们讨论Java的即时编译器(JIT),当时并不知道这是啥东西,所以就借着周末的时间,学习了一下! 一.概述 在部分的商用虚拟机(Sun HotSpot)中,Java程序最初是通过解释器 ...
- python-基础入门-1
Python的打印为 print,等价于c语言的printf 1 print "hello again" 就能打印出hello again,简简单单,就这么一句. 我用的vsc ...
- ①SpringCloud 实战:引入Eureka组件,完善服务治理
简介 Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能.Spring Cloud Eureka 是 Spring Cloud Netf ...
- 前端静态站点在阿里云自建 K8S DevOps 集群上优雅的进行 CI/CD
目录 网站 域名 K8S DevOps 集群 私有 Gitlab 使用 Docker 编译站点 * Dockerfile * 构建编译 Image * 测试编译 Image * 推送镜像到 Aliyu ...
- JDK7HashMap
JDK7HashMap 成员变量 HashMap中定义了非常多的成员变量以及常量,各成员变量含义具体如下: //默认初始化长度-16 static final int DEFAULT_INITIAL_ ...
- select标签
select标签 select 可以创建单选或多选菜单. <!DOCTYPE html> <html> <head> <meta charset=" ...
- 使用Docker快速部署各类服务
使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...
- 在 CentOS 7 安装 Tomcat
一. 安装 JDK 8 1.1 下载 JDK 8 cd /opt/ wget --no-cookies --no-check-certificate --header "Cookie: gp ...
- IAR编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0x8 more bytes needed. The problem occurred while processing the segment
问题:个人使用的是IARV9.10编译CC2541的工程,没有做任何修改,直接编译出现如下错误 Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is ...