黑马程序员_java GUI(图形化界面)概述

  在第一天学习java的时候,我们就知道了软件就是为了实现人机交互而出现的,交互的方式有两种,一种是命令行方式另一种就是图形化界面。图形化界面简称GUI,是一种方便用户使用的人机交互方式。java为GUI提供的对象都存在与java.Awt和java.Swing包中。java.Awt是一个抽象窗口工具包,需要调用本地系统方法实现功能,属于重量级空间。java.Swing是在Awt的基础上建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现。增强了移植性,属于轻量级控件。图形化界面的继承关系图如下(其中的Container为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来):








  在容器中组件的排放方式称之为布局,常见的布局管理器有5种,分别是:
1.FlowLayout(流式布局管理器):从左到右的顺序排列,是Panel默认的布局管理器。
2.BorderLayout(边界布局管理器):按照东,南,西,北,中的顺序布局,是Flame的默认布局管理器。
3.GridLayout(网格布局管理器):它是有一个个规矩的矩阵组成,在每个矩阵中布局。
4.GardLayout(卡片布局管理器):使用选项卡的布局管理器。
5.GridBagLayout(网络包布局管理器):是一个个非规矩的矩阵组成。


下面给出一个简单的java图形程序:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class MainFrame 
{
 public static void main(String[] args)
    {
       Frame frame = newFrame("welcome!!");     //创建frame
       
       frame.setSize(400, 400);                    //调整frame的大小和初始位置
       frame.setLocation(100, 100);
       
       Button button1 = new Button("hello1");      //新建1个Button

        rame.add(button1,"East");                  //将1个Button添加到frame中,在frame中 BorderLayout是默认布局管理器

      frame.addWindowListener(new WindowAdapter()         //增加窗口监听事件,使用内部类方法,并用监听器的默认适配器
        {
           public void windowClosing(WindowEvent arg0)     //重写窗口关闭事件
             {
                 System.exit(0);
             }
           });                                                 //不可以忘记“)”
        frame.setVisible(true);                               //显示窗体
    }  
}


在上述基本方法中涉及到了时间监听机制,事件监听流程图如下:





  监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器将某个事先的方法志行。
java的事件监听机制可概括为3点:
1,java的事件监听机制涉及到事件源,事件监听器,事件对象三个组件,监听器一般是接口,用来约定调用方式
2,当事件源对象上发生操作时,它将会调用事件监听器的一个方法,并在调用该方法时传递事件对象过去

3,事件监听器实现类通常是由开发人员编写,开发人员通过事件对象拿到事件源,从而对事件源上的操作进行处理


事件监听机制在java图形用户界面那一块用的最多,我们举个awt例子:
import java.awt.*;
import java.awt.event.*;
public class ShiJianJianTingJiZhiShiLi
{
   public static void main(String[] args)
      {
            Frame frame = new Frame();                       //事件源
            frame.setSize(300,300);
            frame.setVisible(true);
                   
            frame.addWindowListener(new MyListener());       //绑定事件对象
      }
  }
         
 class MyListener extends WindowAdapter                       //监听器
    {
        public void windowClosing(WindowEvent e)
         {
              Frame f = (Frame) e.getSource();               //通过点击关闭按钮获取事件源
               f.dispose(); 
          }
     }
 通过这个例子我们可以明确事件监听机制就是设定一个对象作为事件源,设置一个监听器绑定事件源,当事件源满足一定的条件就触发监听器,然后监听器接收信号,然后根据事先的设定进行处理。
 通过事件监听机制,引入了几个事件如:addActionListener(动作监听器),addMouseListener(鼠标监听器),addKeyListener(键盘监听器)等,并且利用这些监听机制可以制作一些常用的界面,如制作按钮功能等。  
  同时在图形化界面中,还可以制作对话框(Dislog)和菜单(MenuItem)。对话框可以用来提醒用户一些操作的失误以及错误原因,菜单的建立可以方便使用功能能,同时在对软件进行扩展是更加方便,可以通过增加子菜单或者新菜单的方式来实现,这些都是需要在实际开发中熟练掌握的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值