zoukankan      html  css  js  c++  java
  • 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;

    ③   容器不但能容纳组件,还能容纳其它容器,通过容器的嵌套可以制作出复杂的布局;

    创建一个窗体类

     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 }

    输出结果如图:

  • 相关阅读:
    第十五讲 实例模式
    第十四讲 实例模式
    将博客搬至CSDN
    CSU 1616: Heaps(区间DP)
    hdu 1281棋盘游戏(二分匹配)
    hdu 1042 N!(大数的阶乘)
    hdu 3371 Connect the Cities (最小生成树Prim)
    hdu 4502吉哥系列故事——临时工计划 (简单DP)
    hdu1230火星A+B (大数题)
    hdu1301 Jungle Roads (Prim)
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5410441.html
Copyright © 2011-2022 走看看