GUI——AWT框架和容器,创建简单窗体
GUI概述:GUI(Graphical User Interface)—图形化用户界面。用户和程序之间可以通过GUI能方便友好地进行交互,在Java语言中,JFC(Java Foundation Classed)是开发GUI的API集,它主要包含以下几个部分:
a) AWT(抽象窗口工具包):Java开发用户界面最初的工具包,是建立JFC的主要基础;
b) Swing组件:建立在AWT之上,新的,功能更强大的图形组件包;
c) JAVA 2D:实现高质量的二维图形;
AWT框架:
① 在java.awt包中包含了一个完整的类集以支持GUI程序的设计,其中的类及相互关系可以用下图来描述:

② Component类是最核心的类,它是构成Java图形用户界面的基础,大部分组件都是由该类派生出来的;
③ Component类主要由基本组件和容器(Container)组件组成;
④ 容器(Container)组件主要分为:Window容器和Panel容器;
Frame容器:
① Window是能独立存在的容器,它有一个子类Frame,它是一个带有标题和缩放角的窗口;
② Frame有一个构造方法,Frame(String title);
③ 可以通过add()方法,在Frame容器中加入其它组件;
④ Frame容器有默认的布局管理器;
⑤ Frame被创建后,是不可见的;
Panel容器:
① Panel只能存在于其它的容器(Window或其子类)中才能显示出来;
② 通过Panel的默认构造方法Panel()可以创建一个Panel;
③ 容器不但能容纳组件,还能容纳其它容器,通过容器的嵌套可以制作出复杂的布局;
创建一个窗体类
class MyFrame1 extends Frame{
public MyFrame1(String title){
super(title);
}
public void init(){
this.setSize(300, 300);//设置窗体的宽高
this.setBackground(Color.GREEN);//给窗体设置背景色
this.setVisible(true);//设置窗体可见
}
}
主方法调用
MyFrame1 myFrame1=new MyFrame1("自己的窗体"); myFrame1.init();
输出结果如图:

创建一个带Panel和Button的窗体:
class MyFrame2 extends Frame{
public MyFrame2(String title){
super(title);
}
public void init(){
this.setSize(300, 300);//设置窗体的宽高
this.setBackground(Color.GREEN);//给窗体设置背景色
this.setLayout(null);//去掉窗体的默认的布局管理器
Panel panel=new Panel();
panel.setLayout(null);//去掉Panel容器默认的布局管理器
panel.setBackground(Color.BLUE);
panel.setBounds(0, 0, 200, 200);//距离父容器(Frame)上顶点,左顶点0,宽高200
Button btn1=new Button("click me");//创建一个按钮
btn1.setBounds(0, 0, 100, 100);
btn1.setBackground(Color.RED);
panel.add(btn1);//添加按钮到面板中
this.add(panel);//把panel加到窗体中
this.setVisible(true);//让窗体可见
}
}
输出结果如图:

GUI——AWT框架和容器,创建简单窗体的更多相关文章
- vc++实例创建简单窗体
#include<windows.h>#include<stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPAR ...
- 简单的Python GUI界面框架
Python开发GUI界面, 可以使用pyQT或者wxpython. 不过不论pyQT还是wxpython都需要比较多的学习成本.Python工程往往是用于快速开发的,有些时候引入pyQT,wxpyt ...
- 怎么处理sqlserver2017部署在winowsDocker上时区无法修改成功的方式,并且可以多创建新的容器调用简单的方式直接使用!
在创建该容器的时候我们执行的语句中添加了一个 从图中所看到的内容,上海时区,按照正常流程一般都是可疑正常执行的,但最后事情并不是我们所想的那么简单. 我们进入对应的容器里面 ,执行语句之后查找对应的文 ...
- 基于tauri+vue3.x多开窗口|Tauri创建多窗体实践
最近一种在捣鼓 Tauri 集成 Vue3 技术开发桌面端应用实践,tauri 实现创建多窗口,窗口之间通讯功能. 开始正文之前,先来了解下 tauri 结合 vue3.js 快速创建项目. taur ...
- spring框架--IOC容器,依赖注入
思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action 多个 [维护成员变量] service 一个 [不需要维护公共变量] dao 一个 [不需要维护 ...
- SpringMVC——DispatcherServlet的IoC容器(Web应用的IoC容器的子容器)创建过程
在上一篇<Spring--Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)>中说到了Web应用中的IoC容器创建过程.这一篇主要讲Sprin ...
- Spring框架-IOC和AOP简单总结
参考博客: https://blog.csdn.net/qq_22583741/article/details/79589910 1.Spring框架是什么,为什么,怎么用 1.1 Spring框架是 ...
- Spring IOC容器创建bean过程浅析
1. 背景 Spring框架本身非常庞大,源码阅读可以从Spring IOC容器的实现开始一点点了解.然而即便是IOC容器,代码仍然是非常多,短时间内全部精读完并不现实 本文分析比较浅,而完整的IOC ...
- Spring框架IOC容器和AOP解析 非常 有用
Spring框架IOC容器和AOP解析 主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...
随机推荐
- 对fgets末尾'\0'的处理
之所以要对fgets自动添加的字符进行处理的原因之一是:当你想比较输入的字符时,你会发现输入的字符和源码用来进行对比的字符一模一样,但是使用strcmp比较时就是不一样,原因就是fgets对输入字符添 ...
- Python+selenium之测试报告(3)
较测试报告(2),该文章将测试报告和测试截图存放在随机变动的文件夹下面,去除了要存放在指定文件夹下面的限制. 注:遇到问题有: 1.创建由时间自动拼接的多级文件夹 2. import os impor ...
- tomcat的work目录不是缓存
最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它 ...
- vijos 1320 清点人数
背景 NK中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去.由于NK中学的学生很多,在火车开之前必须清点好人数. 描述 初始时,火车上没有学生:当同学们开始上火车时,年级主任从第一节车厢出 ...
- ubuntu 使用apt命令时报错 E: Could not get lock /var/lib/dpkg/lock - open...
问题描述: 刚刚安装好Ubuntu16.04.使用apt命令时,提示报错信息: abc@pc:~$ sudo apt-get install openssh-server E: Could not g ...
- Lemonade Trade
4990: Lemonade Trade 时间限制: 1 Sec 内存限制: 128 MB Special Judge提交: 88 解决: 17[提交][状态][讨论版][命题人:admin] ...
- SC || Chapter 8
栈:方法调用和局部变量的存储位置,保存基本类型 堆:在一块内存里分为多个小块,每块包含 一个对象,或者未被占用
- JS实用技术
JS外部引用其他文件(建议) <script src="myScript1.js"></script> JS输出显示方式 使用 window.alert() ...
- 代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要.(包括:iPhone4/4s,iPhone5/5s,iPhone6/6s,iPhone 6p/6ps ...
- 关于removeFromSuperview
关于 - (void)removeFromSuperview 苹果官网API中是这么描述的: Unlinks the view from its superview and its window, ...