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(序列化)

java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流相关推荐

  1. java消费者模式_基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  2. java 生产者消费者代码_Java生产者和消费者代码

    java 生产者消费者代码 This also helps us to understand the concept of synchronised multi-threading in java, ...

  3. java生产线消费者,基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  4. 生产者/消费者问题的多种Java实现方式

    实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式, 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以 ...

  5. 生产者/消费者问题的多种Java实现方式--转

    实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的.在博文<一种面向作业流(工作流)的轻量级可复用 ...

  6. (转)生产者/消费者问题的多种Java实现方式 (待整理)

    背景:生产者消费者的问题真的是绕不开,面试时候很可能让手写此代码,需要深入总结下. 实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲 ...

  7. java 生产者消费者_基于JAVA的生产者消费者问题

    一.需求分析 为了更好地理解进程同步的机制和过程,决定设计实现生产者消费者问题的解决,以实现进程的同步控制. 题目描述:有n个生产者在生产产品,这些产品将提供给m个消费者去消费,为了使生产者和消费者能 ...

  8. java生产者消费者问题代码分析

    作者要的是一个生产者生成,接着必须有一个消费者消费,那这不是需要单线程吗?或者使用1个大小的阻塞队列.所以只谈论问题本身,不谈论好不好. 具体代码: Java代码   import java.util ...

  9. 分布与并行计算—生产者消费者模型队列(Java)

    在生产者-消费者模型中,在原有代码基础上,把队列独立为1个类实现,通过公布接口,由生产者和消费者调用. public class Consumer implements Runnable {int n ...

最新文章

  1. c# html文本编辑器,C#实现简单文本编辑器
  2. Silverlight实例教程 - Navigation导航框架系列汇总
  3. 转:linux设置进程优先级
  4. 19 Handler 子线程向主线程发送信息
  5. 40%美国人付不起400美元意外开销,大家怎么看?
  6. 属性被分为八大类不包括_Python语言---私有属性
  7. 【Python】 dict 以key名 去重运算
  8. HBase 的表设计
  9. 通用职责分配软件原则之5-控制器原则
  10. VERITAS为中小企业提供数据保护、数据恢复和管理全面策略
  11. iphone保修期多久_小心!教你如何鉴别 iPhone 翻新机,黑机千万别买!
  12. 计算机无法备份,电脑无法备份怎么办
  13. 怎么把git代码导入到本地仓库_git在本地仓库添加了一个tag,如何把这个tag同步到远程仓库?...
  14. 什么时候不该使用es6箭头函数
  15. 离散数学及其应用 (第2版)
  16. _ie6png图片的修复
  17. 京东联盟/好京客API与京东默认PID申请教程
  18. 数字图像学笔记——6. 噪音生成(椒盐噪音、高斯噪音、泊松噪音)
  19. 【Web技术】1477- Tauri:下一代桌面应用开发框架?
  20. 车辆识别码VIN校验位计算方法及实现-Java

热门文章

  1. docker发布spring cloud应用
  2. 常见排序算法的C#实现
  3. 做个流量站-聚茶吧, 汇聚茶的地方
  4. 【DFS】HDU 1364 POJ 1071 Illusive Chase
  5. android中给TextView或者Button的文字添加阴影效果
  6. 浏览器返回错误汇总分析
  7. C++中使用try{}catch()的优/缺点
  8. 暴力字符匹配算法的C语言实现
  9. Linux内核自旋锁
  10. android 复制u盘文件到手机本地_如何导出Android中的文件(把Android当做U盘)