首页 > 代码库 > 黑马程序员-GUI

黑马程序员-GUI

GUI图形化界面Graphical user interface

MenuBar通过Frame的方法setMenuBar(Menubar)添加到Frame中。Dialog和FileDialog()通过构造函数接受一个Frame.        

CLI command user interface

java.Awt ;Abstract Window ToolKit

       需要调用本地系统方法,属于重量级控件

javax.Swing

       在AWT的基础上,由java实现。轻量级控件。

常见的组件的排放方式,就是布局。

常见的布局管理器:

Flowlayout(流式布局管理器)

       从左到右的顺序排列 默认居中,如果再添加,则居中的往左移,如果满了,则放在下一行,扔居中。

       panel默认的布局管理区

BorderLayout(边界布局管理器)

       东 北,中  如果没有指定东南西北,则整个页面居中。

       Frame默认的布局管理区。

GridLayout(网格布局管理器)

       规定的矩阵 类似九宫格

CardLayout(卡片布局管理器)

       选项卡

GridBagLaout(网格包布局管理器)

       非规则的矩阵

创建图形化界面:

1.创建frame窗体。

2.对窗体进行基本设置

       比如大小,位置,布局

3.定义组件

4.将组件通过窗体的add方法添加到窗体中。

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

时间监听机制的特点和原理:

       1.事件源

       2.事件

       3.监听器

       4.事件处理

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

       事件:每一个事件源都有自己的特有特有的对应事件和共性事件

       监听器:将可以触发某一个事件的动作都已经封装到了监听器中。

       以上三者在java中已经定义好了,我们要做到是进行动作处理。

1.添加文本 转到按钮,文本框内输入文件目录,并搜索

TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读。

       类 TextComponent:

       String getText()

              返回此文本组件表示的文本。

       void setText(String t)

              将此文本组件显示的文本设置为指定文本。

       类textArea:

       void append(String str)

              将给定文本追加到文本区的当前文本。

       TextArea(String text, int rows, int columns)

               设置行和列

2.添加Dialog 是一个带标题和边界的顶层窗口

Dialog 是一个带标题和边界的顶层窗口

       Dialog(Dialog owner)

       Dialog(Frame owner)

       Dialog(Window owner)

       Dialog(Frame owner, String title, boolean modal)

          构造一个最初不可见的 Dialog,它带有指定的所有者 Frame、标题和模式。

          模式:为true不点击无法继续操作。

Label对象是一个可在容器中放置文本的组件。

void setText(String text)

     将此标签的文本设置为指定的文本。

3.添加鼠标键盘事件

       KeyEvent的方法。      *

       int getKeyCode()

           返回与此事件中的键关联的整数 keyCode。

    static String getKeyText(int keyCode)

         返回描述 keyCode 的 String,如 "HOME"、"F1" 或 "A"。

       getChar():获取字符,如果是多个字母的如ESC,则显示?     * 

       如何使用组合键?

       在InputEvent(keyEvent的父类)中,有一些方法,可以判断某个键被按下,如

       boolean isControlDown() isShiftDown(),

          返回 Control 修饰符在此事件上是为 down。          

    consume():使用此事件,以便不会按照默认的方式由此程序源代码来处理事件       

    TextField 对象是允许编辑单行文本的文本组件。

       void setColumns(int columns)

    设置此文本字段中的列数。

4.添加菜单:

MenuBar:菜单栏//extends MenuComponet extends Componet

       MenuBar() 创建新的菜单栏。

       方法:add(Menu m);菜单栏添加下拉菜单

Frame:void setMenuBar(MenuBar mb)//frame不能直接添加MenuBar

    将此窗体的菜单栏设置为指定的菜单栏。

Menu;下拉式菜单

       Menu(String label) //可以为空,构造具有指定标签的新菜单。

       方法:add(MenuItem mi)

MenuItem:菜单项//菜单项不可以添加子菜单或菜单项

       MenuItem() //可以为空,构造具有空标签且没有键盘快捷方式的新菜单项。

MenuItem监听器;

       void addActionListener(ActionListener l)

         添加指定的动作侦听器,以从此菜单项接收动作事件。

5.添加文件对话框

类FileDialog 文件对话框。//同dialog一样。

FileDialog(Frame parent, String title, int mode)

    创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。

       如果 mode 的值为 LOAD,那么文件对话框将查找要读取的文件,所显示的文件是当前目录中的文件。

       如果 mode 的值为 SAVE,则文件对话框将查找要写入文件的位置。

       mode - 对话框的模式,FileDialog.LOAD 或 FileDialog.SAVE    

方法:

       String getDirectory() //返回的是文件名都在文本区中。

                       获取此文件对话框的目录。

       String getFile()

                       获取此文件对话框的选定文件。

       void setDirectory(String dir)

                       将此文件对话框窗口的目录设置为指定目录。

       void setFile(String file)

          将此文件对话框窗口的选定文件设置为指定文件。

注意:getDirectory()获取的是一个文件的目录,getFile()获取的同样也是个这个文件的名字。

只是将一个文件的路径名和文件名分开了。

练习1:列出指定目录内容

练习2:在输入路径名错误是,跳出对话框,不点确定,不让执行。

        String getText()

         返回此文本组件表示的文本。

    TextArea:  void append(String str)

         将给定文本追加到文本区的当前文本。

    TextField:   void setText(String t) :会覆盖以前的文档。

         将此文本组件显示的文本设置为指定文本。               

    练习1思路:

      1.创建GUI,Frame,Button ,TextField TextArea

      2.进行基本设置..

      3.在Button上添加监听器,在TextField添加监听器。

      4.监听器内容;获取TestField的路径名。getText()         

      5.将路径名传给递归方法。

      6.递归方法:

              --1.列出目录,2.for循环中,如果不是目录,继续递归。

              --3. 循环中,将目录的字符串添加到TextArea中,append(String),几个加换行。

     练习2思路:

      1.添加Dialog组件

      2.添加Button和Lable

      3.添加Buttton监视器d.setViseble(false) ,在文件名不准确时,设置d.setVisible(true)       

练习3:创建菜单项,菜单栏,子菜单 点击退出时退出。

       菜单栏:MenuBar 通过Fame的setMenuBar(MenuBar mb)与Frame联系。

        ---构造方法:MenuBar()

          创建新的菜单栏。

       菜单:Menu extends MenuItem

       ----add(MenuItem mi),add(String label)

       ----Menu(String label)   构造具有指定标签的新菜单。

       菜单:MenuItem

        ----addActionListener(ActionListener l)

        ----MenuItem(String label)