java生产者消费者gui_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(序列化)
java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流相关推荐
- java消费者模式_基于Java 生产者消费者模式(详细分析)
生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...
- java 生产者消费者代码_Java生产者和消费者代码
java 生产者消费者代码 This also helps us to understand the concept of synchronised multi-threading in java, ...
- java生产线消费者,基于Java 生产者消费者模式(详细分析)
生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...
- 生产者/消费者问题的多种Java实现方式
实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式, 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以 ...
- 生产者/消费者问题的多种Java实现方式--转
实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的.在博文<一种面向作业流(工作流)的轻量级可复用 ...
- (转)生产者/消费者问题的多种Java实现方式 (待整理)
背景:生产者消费者的问题真的是绕不开,面试时候很可能让手写此代码,需要深入总结下. 实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲 ...
- java 生产者消费者_基于JAVA的生产者消费者问题
一.需求分析 为了更好地理解进程同步的机制和过程,决定设计实现生产者消费者问题的解决,以实现进程的同步控制. 题目描述:有n个生产者在生产产品,这些产品将提供给m个消费者去消费,为了使生产者和消费者能 ...
- java生产者消费者问题代码分析
作者要的是一个生产者生成,接着必须有一个消费者消费,那这不是需要单线程吗?或者使用1个大小的阻塞队列.所以只谈论问题本身,不谈论好不好. 具体代码: Java代码 import java.util ...
- 分布与并行计算—生产者消费者模型队列(Java)
在生产者-消费者模型中,在原有代码基础上,把队列独立为1个类实现,通过公布接口,由生产者和消费者调用. public class Consumer implements Runnable {int n ...
最新文章
- c# html文本编辑器,C#实现简单文本编辑器
- Silverlight实例教程 - Navigation导航框架系列汇总
- 转:linux设置进程优先级
- 19 Handler 子线程向主线程发送信息
- 40%美国人付不起400美元意外开销,大家怎么看?
- 属性被分为八大类不包括_Python语言---私有属性
- 【Python】 dict 以key名 去重运算
- HBase 的表设计
- 通用职责分配软件原则之5-控制器原则
- VERITAS为中小企业提供数据保护、数据恢复和管理全面策略
- iphone保修期多久_小心!教你如何鉴别 iPhone 翻新机,黑机千万别买!
- 计算机无法备份,电脑无法备份怎么办
- 怎么把git代码导入到本地仓库_git在本地仓库添加了一个tag,如何把这个tag同步到远程仓库?...
- 什么时候不该使用es6箭头函数
- 离散数学及其应用 (第2版)
- _ie6png图片的修复
- 京东联盟/好京客API与京东默认PID申请教程
- 数字图像学笔记——6. 噪音生成(椒盐噪音、高斯噪音、泊松噪音)
- 【Web技术】1477- Tauri:下一代桌面应用开发框架?
- 车辆识别码VIN校验位计算方法及实现-Java