GUI图形化界面

来源:互联网 发布:网络便利店系统 编辑:程序博客网 时间:2024/05/12 19:44



GUI

一计算机和用户交互的方式

  (一)GUIGraphical User Interfance)图形化用户接口

             用图形的方式,来显示计算机操作的界面,方便直观。   

  (二)CLICommmand User Interfance)命令行用户接口

             用Dos命令行操作,需要记忆常用的命令,操作不直观

二,GUI 

  (一)JavaGUI提供的对象都在java.Awtjavax.Swing两个包中

       1java.AwtAbstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件(和系统的依赖性较强 。有点依赖于平台

       2javax.Swing:在AWT的基础上(有些类是AWT的子类=),建立的一套图形界面系统,其中提供了更多的组件,而且完全由J ava实现。增强了移植性,属轻量级控件。适用于任何平台(常用

  (二)体系:                  

                                                       Component(构件,组件)

                              Container(容器)                                    Button(按钮)

               Window(窗口)   Panel(面板)                         Label(标签)

    Frame(窗体) Dialog(对话框)                           Checkbox(复选框)

                              FileDialog(文件对话框)                        TextComponent(文本组件)

       TextArea文本区域    TextField文本框

Container:为容器,该组件中可以通过add方法添加其他组件进来

 

  (三)布局(组件的排放)

           常见的布局管理器:

                       • FlowLayout(流式布局管理器)

                              • 从左到右的顺序排列。

                              • Panel默认的布局管理器。

                      • BorderLayout(边界布局管理器)

                              • 东,南,西,北,中

                              • Frame默认的布局管理器。

                      • GridLayout(网格布局管理器)

                              • 规则的矩阵

                      • CardLayout(卡片布局管理器)

                              • 选项卡

                      • GridBagLayout(网格包布局管理器)

                              • 非规则的矩阵

                      • 坐标式布局

                              • 自定义位置,可以运用高级编辑器,如Eclipse+图形化界面插件。

  (四)创建

           1Component

                 方法:void setVisible(boolean b) 根据参数 的值显示或隐藏此组件

                Frame默认是边界式布局)

           2,事件监听机制

                 流程图

          

              事件监听机制的特点

                       1,事件源:awt包或者swing包中的那些图形界面组件

                       2,事件:每一个事件源都有自己的特有的对应事件和共性事件(鼠标,键盘等)

                       3,监听器:就是将可以触发某一个事件的动作(不止一个)都已经封装到了监听器中

                             (以上三者在java中都定义好了,可以直接获取对象使用)

                       4,事件处理:(编辑者编辑)

             方法:void addWindowFocusListener(WindowListener l) 

                                         添加指定的窗口侦听器,以从此窗口接收窗口事件。

                         void windowActivated(WindowEvent e) 

                                         激活窗口时调用(将窗口前置)

                         void windowOpened(WindowEvent e) 

                                         已打开窗口时调用

      示例:

/*

创建图形化界面

1,创建Frame窗体

2,对窗体进行基本设置

   比如大小,位置,布局

3,定义组件

4,将组将通过窗体的add方法添加到窗体中

5,让窗体显示,通过setVisible(ture)

*/

import java.awt.*;

import java.awt.event.*;   //事件监听机制

class  AwtDemo

{

           public static void main(String[] args) 

           {

                        Frame f = new Frame("my awt");

                        f.setSize(500,400);       

                       //设置大小,第一个是横长,地二个是纵长

                        f.setLocation(300,200);   

                       //设置位置,第一个是距左边距离,第二个是距右边距离

                       f.setLayout(new FlowLayout());

                       //设置布局模式管理

                       Button b = new Button("我是一个按钮");

                       f.add(b);

                       f.setVisible(true);       

                       //图形化界面是由主线程外的线程控制

                      //连接窗口监听器

                      void addWindowFocusListener(new MyWin()); 

           

                    System.out.println("Hello World!");

             }

}

/*

class MyWin implements WindowListener

{

//因为Windowlistener是一个借口,需要覆盖七个方法,

//可以只需要一个关闭的方法,因此不击继承它

//继承其子类WindowAdapter对象

}

*/

class MyWin extends WindowAdapter//WindowAdapter在java,awt,event中

{

               public void windowClosing(WindowEvent e)

              {

                     System.exit(0);

              }

}

 

     3共性事件:鼠标和键盘

          (1)鼠标:添加事件:

                 按钮.addMouseListener(new MouseAdapter()  给按钮添加鼠标监听器

                  void mouseEntered(MouseEvent e)   鼠标进入组件

                  mouseClicked(MouseEvent e)       点击鼠标动作

                  在MouseEvent类中getClickCount() 获取鼠标次数

          (2)键盘:添加事件:

                 按钮.addKeyListener(new KeyAdapter()  给按钮添加鼠标监听器

                 在MouseEvent e中封装每个键的事件

                        e.getKeyChar();    e.getKeyCode();     每个按键对应的数字

                        而每个按键对应的码:KeyEvent.VK_ENTER

                       Cral+enter键对应的码:

                                e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER

     4添加文本框new TextField(列数)

           tf.addKeyListener(new KeyAdapter()

           {

                       public void keyPressed(KeyEvent e)

                        {

                                      int code = e.getKeyCode()

                                      if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))

                                       {

                                                     System.out.println(code+".....是非法的");

                                                     e.consume();

                                                     //使用此事件,不会按照默认的原代码来处理此事件

                                                   //取消让非法字符进入文本框

                                      }

                       }

         });    

     5,对话框:Dialog是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。对话框一般不单独存在,依赖于窗体

                           FileDialog :文本对话框  mode:LOAD 打开(默认);SAVE 保存

     6,GUI菜单

        1)MenuBar:  菜单栏或菜单条,为了将该菜单栏与 Frame 对象关联可以调用该框架的 setMenuBar 方法。

        2)Menu  :   菜单    添加菜单方法:add()

        3)MenuItem: 菜单栏目

                       Menu extends MenuItem因而Menu中既可以添加自己(带箭头),也可以添加父类

   7,双击执行GUI

 

总结:学习GUI,就是学习简历图形化界面,虽然只是学习创建一下窗口,但也也比Dos好看啊

           学习GUI,主要要记住窗体和各个组建类的用法,如WindowFile   ,Button等,这些是创建一个窗体的必要条件

           还要熟练每个组建的添加,调用等的方法,这是使组建有用的必备。