EchoDemo's Blogs

Java中的AWT框架和容器

1、GUI概述

(1)GUI(Graphical User Interface)图形化用户界面。用户和程序之间可以通过GUI能方便友好地进行交互。在Java语言中,JFC(Java Foundation Classed)是开发GUI的API集,它主要包括以下几个部分:

a、AWT(抽象窗口工具包):Java开发用户界面最初的工具包,是建立JFC的主要基础。

b、Swing组件:建立在AWT之上,新的,功能更强大的图形组件包。

c、JAVA2D:实现高质量的二维图形。

......

2、AWT框架

(1)在java.awt包中包含了一个完整的类集以支持GUI程序的设计。awt所提供的控件一般称之为重量级控件,因为awt主要依靠本地方法(操作系统所提供的图形库)来实现其功能,基于此Java为了实现一次编译到处运行的概念,awt就不得不通过牺牲功能来实现(取各个操作系统的交集)。其中的类及相互关系可以用下图来描述。

"类的相互关系"

(2)Component类是最核心的类,它是构成Java图形用户界面的基础,大部分组件都是有该类派生出来的。Component类主要由基本组件和容器(Container)组件组成。容器组件组要分为Window容器和Panel容器。

(3)Frame容器

a、Window是能独立存在的容器,它有一个子类Frame,它是一个带有标题和缩放角的窗口。

b、Frame有一个构造方法Frame(String title)。

c、你可以通过add()方法,在Frame容器中加入其它的组件。

d、Frame容器有默认的布局管理器。

e、Frame被创建后,是不可见的。

f、示例

package com.iotek.awt;

import java.awt.Color;
import java.awt.Frame;

public class FrameDemo1 {

    public static void main(String[] args) {
        MyFrame1 myFrame1=new MyFrame1("标题");
        myFrame1.init();
    }
}

class MyFrame1 extends Frame{
    public MyFrame1(String title){
        super(title);
    }
    public void init(){
        //this.setSize(300,300);//设置窗体的宽和高
        this.setBounds(100, 100, 300, 300);//移动并调整此组件的大小。 
        this.setBackground(Color.GREEN);//给窗体设置背景颜色
        this.setVisible(true);//设置窗体可见
    }
}

(4)Panel容器

a、Panel只能存在于其它的容器(Window或者其子类)中才能显示出来。

b、通过Panel的默认构造方法Panel()可以创建一个Panel。

c、示例

package com.iotek.awt;

import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;

public class FrameDemo2 {

    public static void main(String[] args) {
        MyFrame2 myFrame2=new MyFrame2("我的窗体");
        myFrame2.init();
    }
}

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);//移动并调整此组件的大小。 
        Button btn1=new Button("clickMe");
        btn1.setBounds(0, 0, 100, 100);
        btn1.setBackground(Color.red);
        panel.add(btn1);//添加按钮到面板中
        this.add(panel);//把panel加到窗体中
        this.setVisible(true);//让窗体显示
    }
}
🐶 您的支持将鼓励我继续创作 🐶
-------------本文结束感谢您的阅读-------------