java理论之java--GUI(图形用户管理)与 IO/流

GUI(图形用户管理)  

  一 GUI的组件和容器

      Component(所有可显示的元素):

           1:它的直接功能子类---Button:对应事件:java.awt.event.ActionEvent;

                                 处理函数:public void actionPerformed(ActionEvent e)

                             ---TextFiled:对应事件:java.awt.event.ActionEvent;

                                  处理函数:public void actionPerformed(ActionEvent e)

                             ---Label

                             ---TextArea

                             ---List

                             ---Scrollbar

                             ---TextComponent

          2:Container(容纳其他Component)

                  (1)Window(自由停放的顶级窗口)---Frame:

                            ---Frame(String str)

                            ---setBounds(int x, int y, int w, int h)

                            ---setSize(int width, int height)

                            ---setLocation(int x, int y)

                               ---setBackground(Color c)

                            ---setVisible(boolean b)

                            ---setTitle(String name)

                            ---setResizable(boolean b)

                  (2)Panel(在顶级窗口内部的小窗口)

                       ---Applet

                       ---Panel()

                       ---Panel(LayoutManager layout)

                       ---setBounds(int x, int y, int w, int h)

                       ---setResizable(boolean b)

                       ---setVisible(boolean b)

                       ---setTitle(String name)

                       ---setBackground(Color c)

                       ---setLocation(int x, int y)

                       ---setSize(int width, int height)

  二 布局管理器

    1:  原理 ---管理Component在Container中的布局,不必直接设置Component位置和大小

       ---每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位活判断其尺寸大小,进行定位时,就会调用其对应的布局管理器,调用Container的setLayout改变对象

    2:  5中布局管理

        1.FlowLayout(Panle默认布局管理器)

               ---基本原理:逐行定位,从左到右,从上到下,一行排满后拍下一行;不改变大小,按照原尺寸显示;可设置:间距,行距,对齐方式;默认居中对齐

               ---方法 (1) FlowLayout();居中对齐,水平,垂直间距默认5

                  (2)FlowLayout(FlowLayout.LEFT);左对齐,默认5

                  (3)FlowLayout(FlowLayout.RIGHT,20,40);

        2.BorderLayout(Frame默认布局管理器)---EAST

                          ---WEST

                          ---SOUTH

                          ---NORTH

                          ---CENTER

        3.GridLayout(表格是布局)---把空间划分成网格,每个格子大小相等,组件被添加到单元格中,左右,上下

        4.CardLayout

        5.GridBagLayout

  三 GUI事件

    1:事件处理原理:

        ---事件源(框架,控件)

        ---事件对象(键盘,鼠标,)

        ---监听器对象

        ---监听器

        ---目标代码

    2:控件事件:用于获取事件发生时控件的状态,然后把我们的操作,返回到指定控件

        ---ActionEvent

        ---ActionListener

    3:鼠标事件

       (1)有哪些鼠标事件:

          ---mouseClicked(MouseEvent e)

          ---mouseEntered(MouseEvent e)

          ---mouseExited(MouseEvent e)

          ---mousePressed(MouseEvent e)

          ---mouseReleased(MouseEvent e)

      (2)鼠标事件添加:

          ---给谁添加:Component(组件添加)

          ---添加的是什么:MouseListener:鼠标事件监听对象

          ---怎么添加:c.addMouseListener(MouseListener l)

          ---添加以后咱么办:调用MouseListener类里面的方法,处理对应的鼠标事件

      (3)事件类体系:MouseListener()接口-->MouseAdapter()类(空实现)-->我们的处理类(我们就不用实现所有的方法)

    4:Window事件 

    5:键盘事件

    各个事件的区别:

        1:对控件进行操作的时候,用控件时间(涉及控件邢台的改变)

        2:对框架/窗口进行操作的时候,窗口事件

        3:涉及绘图,内容改变的时候,用鼠标/键盘事件

        4:各个事件有一定的功能重合,怎么用自己选择

  四 GUI内部类:就是直接在一个类的内部直接声明的类(和普通类声明方法一样,没有任何区别)

       作用:可以直接访问包装内的成员变量和方法,因为内部类直接包含了外部类的引用

       好处:清晰的组织代码结构,逻辑更好,防止被其他类非法访问

       使用时机:这个类就是为外部类服务的,不需要或者不允许别的类进行访问的时候  

-----------------------------------------------

IO流

  一:IO流的基本原理:

      1:作用:读写数据

      2:描述主体对象:当前程序(就是流所在的代码文件)

      3:操作的对象:数据(计算机中所有的东西都是以001101的二进制码存在)

      4:IO处理:转成字符串输出,转成字符串打印到纸上:输出流,打印流

      5:效率处理:缓存流

  二:流的分类:

      1:输入/输出流---区别:是把外部数据导入当前的程序,还是把当前程序的数据,导入到外部设备

      2:字符/字节流---区别:每次读写数据块大小的区别;直接流就是每次读写8位,需要按照字符系统(2个直接,Unicode-16)重新拼装成字符字符流,就是直接按照字符系统指定的大小读写数据块,少了一个拼装过程

      3:原始流/处理流---区别:直接用于在程序和设备中直接读取数据的流;和不能在程序和设备中读取数据,只能按照目的处理前者从原始设备和程序中读出的数据的流

 

  三:4个原始流功能与方法:

      1:InputStream(理由:一次读取一个字节)/8

          (1):int read() throws IOException:读到末尾返回-1

          (2):read(byte[] buffer)

          (3):read(byte[] buffer,int offset,int length)

          (4):close()

          (5):skip()

      2:OutputStream(一次写入一个字节)/8

          (1):write(int b) throws exception

          (2):write(byte[] b)

          (3):write(byte[] b, int off, int len)

          (4):flush()

          (5):close()

      3:Reader(一次读取一个字符)/16

          (1):read()

          (2):read(char[] cbuf)

          (3):read(char[] cbuf, int offset, int length)

          (4):close()  

          (5):skip()

      4:Writer(一次写入一个字符)/16

          (1):write(int c)

          (2):write(char cbuf)

          (3):write(char[] cbuf, int offset, int length)  

          (4):write(String string)

          (5):write(String string, int offset,int length)

          (6):flush()

          (7):close()

  四: 具体的功能类

      1:File(硬盘)

      2:Memory Array

      3:Memory String

      4:Pipe(不同线程间)

      5:Object(序列化)

  

                                  

原文地址:https://www.cnblogs.com/xcxcxc/p/4672042.html