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;
③ 容器不但能容纳组件,还能容纳其它容器,通过容器的嵌套可以制作出复杂的布局;
创建一个窗体类
1 class MyFrame1 extends Frame{
2 public MyFrame1(String title){
3 super(title);
4 }
5
6 public void init(){
7 this.setSize(300, 300);//设置窗体的宽高
8 this.setBackground(Color.GREEN);//给窗体设置背景色
9 this.setVisible(true);//设置窗体可见
10 }
11 }
主方法调用
1 MyFrame1 myFrame1=new MyFrame1("自己的窗体"); 2 myFrame1.init();
输出结果如图:
创建一个带Panel和Button的窗体:
1 class MyFrame2 extends Frame{
2 public MyFrame2(String title){
3 super(title);
4 }
5
6 public void init(){
7 this.setSize(300, 300);//设置窗体的宽高
8 this.setBackground(Color.GREEN);//给窗体设置背景色
9 this.setLayout(null);//去掉窗体的默认的布局管理器
10
11 Panel panel=new Panel();
12 panel.setLayout(null);//去掉Panel容器默认的布局管理器
13 panel.setBackground(Color.BLUE);
14 panel.setBounds(0, 0, 200, 200);//距离父容器(Frame)上顶点,左顶点0,宽高200
15
16 Button btn1=new Button("click me");//创建一个按钮
17 btn1.setBounds(0, 0, 100, 100);
18 btn1.setBackground(Color.RED);
19
20 panel.add(btn1);//添加按钮到面板中
21
22 this.add(panel);//把panel加到窗体中
23
24 this.setVisible(true);//让窗体可见
25 }
26 }
输出结果如图: