zoukankan      html  css  js  c++  java
  • 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(序列化)

      

                                      

  • 相关阅读:
    通信编程:WSAEventSelect 模型通信
    VMware 安装 Red Hat 6 虚拟机
    通信编程:Select 模型通信
    Android:隐式 Intent 调用标准 Action
    Android:显式 Intent
    Linux(CentOS)用户修改密码有效期
    linux 系统中断信息
    qt udp 聊天
    docker更改镜像存储位置
    通过dockerfile构建singularity镜像
  • 原文地址:https://www.cnblogs.com/xcxcxc/p/4672042.html
Copyright © 2011-2022 走看看