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框架和容器,创建简单窗体的更多相关文章

  1. vc++实例创建简单窗体

    #include<windows.h>#include<stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPAR ...

  2. 简单的Python GUI界面框架

    Python开发GUI界面, 可以使用pyQT或者wxpython. 不过不论pyQT还是wxpython都需要比较多的学习成本.Python工程往往是用于快速开发的,有些时候引入pyQT,wxpyt ...

  3. 怎么处理sqlserver2017部署在winowsDocker上时区无法修改成功的方式,并且可以多创建新的容器调用简单的方式直接使用!

    在创建该容器的时候我们执行的语句中添加了一个 从图中所看到的内容,上海时区,按照正常流程一般都是可疑正常执行的,但最后事情并不是我们所想的那么简单. 我们进入对应的容器里面 ,执行语句之后查找对应的文 ...

  4. 基于tauri+vue3.x多开窗口|Tauri创建多窗体实践

    最近一种在捣鼓 Tauri 集成 Vue3 技术开发桌面端应用实践,tauri 实现创建多窗口,窗口之间通讯功能. 开始正文之前,先来了解下 tauri 结合 vue3.js 快速创建项目. taur ...

  5. spring框架--IOC容器,依赖注入

    思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action  多个   [维护成员变量] service 一个   [不需要维护公共变量] dao     一个   [不需要维护 ...

  6. SpringMVC——DispatcherServlet的IoC容器(Web应用的IoC容器的子容器)创建过程

    在上一篇<Spring--Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)>中说到了Web应用中的IoC容器创建过程.这一篇主要讲Sprin ...

  7. Spring框架-IOC和AOP简单总结

    参考博客: https://blog.csdn.net/qq_22583741/article/details/79589910 1.Spring框架是什么,为什么,怎么用 1.1 Spring框架是 ...

  8. Spring IOC容器创建bean过程浅析

    1. 背景 Spring框架本身非常庞大,源码阅读可以从Spring IOC容器的实现开始一点点了解.然而即便是IOC容器,代码仍然是非常多,短时间内全部精读完并不现实 本文分析比较浅,而完整的IOC ...

  9. Spring框架IOC容器和AOP解析 非常 有用

    Spring框架IOC容器和AOP解析   主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...

随机推荐

  1. ios中frame设置宽高计算的Demo

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ int totalHeightOfScrollView = scrollView.con ...

  2. HDU 4055 Number String(DP计数)

    题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ...

  3. MovieReview—Despicable Me 3(神偷奶爸3)

    Minions&Unicorn         The film focuses on the story of Grew and the bastard Bled. A variety of ...

  4. [转]maven项目部署到tomcat

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  5. Codeforces Round #Pi (Div. 2) 567E President and Roads ( dfs and similar, graphs, hashing, shortest paths )

    图给得很良心,一个s到t的有向图,权值至少为1,求出最短路,如果是一定经过的边,输出"YES",如果可以通过修改权值,保证一定经过这条边,输出"CAN",并且输 ...

  6. anaconda 安装各种库

    在anaconda prompt 添加清华源 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channe ...

  7. ES6学习笔记(二)

    Set 和 Map 数据结构 1.set 基本用法 ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值 Set本身是一个构造函数,用来生成Set数据结构 const s ...

  8. android上部署tensorflow

    https://www.jianshu.com/p/ddeb0400452f 按照这个博客就可以 https://github.com/CrystalChen1017/TSFOnAndroid 这个博 ...

  9. cityspace

    类别的网址:https://blog.csdn.net/u010069760/article/details/77847595 r,g,b:  250 170 160 parking   244 35 ...

  10. jquerymobi总结

    http://app-framework-software.intel.com/ http://app-framework-software.intel.com/api2/#$_proxy