java基础五(AWT和Swing)

目录

1.概念

2.布局管理器

2.1FlowLayout(流式布局)

2.2BorderLayout(边界布局)

2.3GridLayout(网格布局)

2.4CardLaout(卡片布局)

3.AWT

4.Swing


一、概念

  1. AWT (抽象窗口工具包)(Abstract Window Toolkit):提供的建立图形用户界面GUI(Graphics User Interface)的开发包
  2. java.awt包:提供GUI设计所使用的类和接口。主要包括 组件(Component)、容器(Container)、布局管理器(LayoutManager)。
  3. 组件不能独立地显示出来。必须要放在一定的容器中才可以显示出来。
  4. 布局管理器(LayoutManager):用来管理组件放置在容器中的位置和大小的。
  5. 面板(Panel):是一种透明的容器,没有标题,也没有边框,就像一块透明玻璃。

在这里插入图片描述

布局管理器(LayoutManager)

      使用布局管理器的注意点:

      (1)在不作任何设置的前提下,用户无法设置组件的属性,都会被布局管理器覆盖。使用的属性无效。

       (2)如果用户想自己设置组件的位置和大小,需要将布局管理器设置为setLayout(null),才可以设置各个组件的属性。

  1. FlowLayout(流式布局)

是Panel和Applet的默认布局管理器。
规则:从上到下、从左到右进行放置,一行放满,然后在下一行继续放置。
new FlowLayout( FlowLayout.LEFT, 20 ,40 ); 单位是像数
参数:(1)对齐方式。(2)组件间横向距离。(3)组件间纵向距离。

在这里插入图片描述

  1. BorderLayout(边界布局)

是Window、Frame、Dialog的默认布局管理器。该管理器把容器分为5个区域:North、South、East、West、Center、每一个区域只能放置一个组件。默认是Center位置。

规则:在顶层容器大小改变时,组件的位置不会改变。在使用add()组件的时候,必须要指定组件的位置。
在这里插入图片描述

  1. GridLayout(网格布局)

是组件呈网格状布局,平均占据容器的空间。

规则:当容器大小改变时,每一个组件还是平均占据容器的空间。也是按照从上到下、从左到右进行放置。
new GridLayout( 4,2 ); 参数:第一个行数。第二个列数
在这里插入图片描述

  1. CardLayout(卡片布局)

处理两个以上的成员共享同一个显示的空间。把容器分成很多层。每一层显示的空间占整个容器大小,但是每一层只能放一个组件。

常用方法:
first(Container parent) 显示第一张卡片。 last(Container parent) 显示最后一张卡片。
next(Container parent) 显示下一张卡片。 previous(Container parent) 显示前一张卡片。show(Container parent,String name) 显示指定卡片

返回顶部

三、AWT

事件处理:

  1. 主要涉及三个对象:
    (1)Event:事件类,以类的形式出现,如:KeyEvent。
    (2)Event Source:事件源,发生事件的场所,如:Button。
    (3)Event Handler:事件处理者,接收事件对象并对其进行处理。

       在使用的时候需要先在容器中注册事件监听器。使用addXXListener()来注册监听器。与AWT有关的所有事件类都由java.awt.AWTEvent类派生,也是EventObject类的子类。

  1. 主要分为:

(1)低级事件:指基于组件和容器的事件。
    ComponentEvent(组件事件,组件尺寸的变化、移动)
    ContainerEvent(容器事件,组件增加、移动)
    WindowEvent(窗体事件,关闭窗口,窗口闭合,图标化)
    FocusEvent(焦点事件,焦点的获取、丢失)
    KeyEvent(键盘事件,按键的按下、释放)
    MouseEvent(鼠标事件,鼠标的点击、移动)

(2)高级事件:基于语义上的事件
    ActionEvent(动作事件,按钮按下)
    AdjustmentEvent(调节事件,滚动条上移动滑块以调节数值)
    ItemEvent(项目事件,选择项目)
    TextEvent(文本事件,文本对象改变)

AWT事件的层次图在这里插入图片描述

  1. AWT事件类和接口(10个类,11个接口)
    在这里插入图片描述
  2. 事件适配器(Adapter)

          提供一种简单的实现监听器的手段,可以缩短程序代码。由于java的单继承机制。很多监听器都已经有父类时,就无法采用事件适配器了。

           对应的适配器有:CompinentAdapter(组件适配器)、ContainerAdapter(容器适配器)、FocusAdapter(焦点适配器)、KeyAdapter(键盘适配器)、MouseAdapter(鼠标适配器)、MouseMotionAdapter(鼠标运动适配器)、WindowAdapter(窗口适配器)

           内部类(inner Class):是被定义另一个类中的类。内部类不但可以访问外部成员方法和变量,并且容易实现功能。

public class test { //这是一个外部类
    class test2{//这是一个内部类
    }}

           匿名类(Anonymous Class):当一个内部类只需要在创建时只调用一次,而且新类需要继承于一个已有的父类或实现一个接口,才能考虑用到匿名类。匿名类不存在构造方法,它需要显式调用一个无参的父类的构造方法,并且重写父类的方法。

返回顶部

四、Swing

           由纯java实现的轻量级组件,没有本地代码,不依赖操作系统的支持,这也是与AWT最大的区别。并且在显示风格方面也是可以在不同平台上显示不同的窗体风格。采用一种MVC的范式。
  
  Swing的特性:

  • 组件的多样化:Swing的组件以"J"开头,除了类似有AWT的一些组件外,还有增加了一些高层组件集合。如JTree
  • MVC体系结构:Swing使用的MVC的体系结构,模型-视图-控件。
  • 可存取性支持:Swing的组件都实现了Accessible接口,提供对可存取性的支持。
  • 支持通过键盘来代替鼠标的操作:
    允许设置边框:允许对组件设置一个或多个边框,并且可以设计自己的风格边框。
    支持使用图标:支持对组件添加图片。

     使用规则:Swing组件不能直接添加到顶层容器中,必定添加到一个与Swing顶层容器相关联的内容面板上。内容面板就是顶层容器包含的一个普通的容器。

  1. 容器面板和组件

(1)根面板:由一个玻璃面板(ClassPane)、内容面板(ContentPane)、可选择的菜单条(JMenuBar)组成。内容面板和可选择菜单条放在同一个分层。玻璃面板默认是不可见的。
(2)分层面板:分为JLayeredPane、JDesktopPane。后者是前者的子类。专门用于容纳内部框架(JInternalFrame)的。
(3)面板(JPanel):是轻量级容器组件,默认布局管理器是FlowLayout。
(4)分隔板(JSplitPane):分隔两个组件,可以按照水平、垂直的方向分隔。
(5)选择板(JTabbedPane):一组可以选择的带图标的选项,每一个选项下面都可以显示一个组件。
(6)工具栏(JToolBar):用于显示常用工具控件的容器。
(7)内部框架(JInternalFrame):就像一个窗口在另一个窗口的内部。

其他组件:JScrollPane(滚动窗口)、JButton(按钮)、JCheckBox(复选框)、JRadioButton(单选框)、JComboBox(选择框)、JFileChooser(文件选择器)、JLabel(标签)、JList(列表)、JProgressBar(进程条)、JSlider(滑动杆)、JMenu(菜单)、JTable(表格)、JTree(树)、JOptionPane(对话框)

AWT和Swing的使用还是需要查看API文档进行开发
返回顶部

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值