I/O
IO流:1:字节流(inputStream:输入流)(outputStream:输出流)。2:字符流(reader:输入流)(winter:输出流)。
首先判断是输入还是输出(站在计算机的立场);其次判断传递字符还是字节,从而选择用什么管道。字节管道是 最根本的,字符管道专门用来传递文本数据的。
操作顺序;1,建立管道。2,操作管道。3,关闭 管道。
序列化:将内存中的对象一二进制流的形式输出。
反序列化:将输入的二进制流转化为内存中的对象。(第二种产生对象的方式)
序列化中将对象转化为二进制流的叫做操作流,后面必须跟上节点流即目的地。
一篇GUI,可以照着做的public class MyFrame extends JFrame{
private Container contentP;//内容面板
private JLabel msgLab;//文字标签
private JLabel imgLab;//图片标签
private JTextField usernameTxt;//文本框
private JPasswordField pwdTxt;//密码框
private JButton okBtn;//按钮
private JButton getMoentyBtn;//取钱按钮
private JComboBox<String> teacherCmb;//下拉列表
private JTextArea selfArea;//文本域
private JRadioButton maleRad;//单选框
private JRadioButton femaleRad;
private JCheckBox hobbitBox;//复选框
public MyFrame(){
Toolkit tk = Toolkit.getDefaultToolkit();//获取工具对象
int screenWidth = (int)tk.getScreenSize().getWidth();
int screenHeight = (int)tk.getScreenSize().getHeight();
this.setSize(500, 400);//设置窗体大小--像素
this.setLocation((screenWidth-500)/2, (screenHeight-400)/2);//设置窗体的位置
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭即退出程序
this.setTitle("我的第一个GUI窗体");//标题栏设置标题
this.setIconImage(tk.createImage("image/icon.png"));//设置标题栏图标
this.setResizable(false);//设置窗体改变大小的能力
this.addContent();
this.setVisible(true);//设置该窗体可见
}
private void addContent(){
this.contentP = this.getContentPane();//获取内容面板
this.contentP.setBackground(Color.WHITE);//设置窗体背景色
this.contentP.setLayout(null);//设置布局管理器为null---代表放入该容器的组件的大小位置全靠自定义
//文本标签
this.msgLab = new JLabel("用户名:");//产生对象
this.msgLab.setText("用户名:");
// this.msgLab.setBorder(BorderFactory.createLineBorder(Color.BLACK));//给标签设置边框--调试用
this.msgLab.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.msgLab.setForeground(new Color(82,254,211));//设置字体颜色
this.msgLab.setBounds(100, 20, 80, 30);//设置大小位置
this.contentP.add(this.msgLab);//放入容器
//图片标签
this.imgLab = new JLabel(new ImageIcon("image/fish.jpg"));
this.imgLab.setBounds(200, 20, 243, 167);
this.contentP.add(this.imgLab);
//文本框
this.usernameTxt = new JTextField();
this.usernameTxt.setBounds(20, 70, 100, 30);
this.usernameTxt.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.usernameTxt.setForeground(new Color(82,254,211));//设置字体颜色
// this.usernameTxt.setEditable(false);//设置文本框不可编辑
this.contentP.add(this.usernameTxt);
//密码框
this.pwdTxt = new JPasswordField();
this.pwdTxt.setEchoChar('*');
this.pwdTxt.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.pwdTxt.setForeground(new Color(82,254,211));//设置字体颜色
this.pwdTxt.setBounds(20, 120, 100, 30);
this.contentP.add(this.pwdTxt);
//按钮
this.okBtn = new JButton("确定");
this.okBtn.setText("确定");
this.okBtn.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.okBtn.setForeground(new Color(82,254,211));//设置字体颜色
this.okBtn.setBounds(20, 160, 100, 30);
this.contentP.add(this.okBtn);
this.getMoentyBtn = new JButton(new ImageIcon("image/buttonGet.jpg"));
this.getMoentyBtn.setBounds(20, 200, 140, 50);
this.contentP.add(this.getMoentyBtn);
//下拉列表
this.teacherCmb = new JComboBox<String>();
this.teacherCmb.addItem("周春艳");
this.teacherCmb.addItem("刘弯弯");
this.teacherCmb.addItem("万洁");
this.teacherCmb.addItem("张欣");
this.teacherCmb.addItem("何茹薇");
this.teacherCmb.setEditable(true);//设置为可编辑为true
this.teacherCmb.setBounds(20, 260, 100, 20);
this.contentP.add(this.teacherCmb);
//文本域
this.selfArea = new JTextArea();
JScrollPane scrollP = new JScrollPane(this.selfArea);
scrollP.setBounds(200, 200, 280, 160);
this.contentP.add(scrollP);
//单选框
this.maleRad = new JRadioButton("男");
this.femaleRad = new JRadioButton("女");
this.maleRad.setBounds(20, 290, 50, 25);
this.femaleRad.setBounds(80, 290, 50, 25);
this.maleRad.setBackground(Color.WHITE);
this.femaleRad.setBackground(Color.WHITE);
this.maleRad.setSelected(true);//设置默认选中
this.contentP.add(this.maleRad);
this.contentP.add(this.femaleRad);
ButtonGroup bGroup = new ButtonGroup();//按钮分组
bGroup.add(this.maleRad);
bGroup.add(this.femaleRad);
//复选框
this.hobbitBox = new JCheckBox("兴趣爱好");
this.hobbitBox.setBounds(20, 325, 100, 25);
this.contentP.add(this.hobbitBox);
}
}
I/O的更多相关文章
- <%@ include file="">和<jsp:include file="">区别
<%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行. <jsp:include p ...
- <jsp:include>和<%@include file=""%>区别【131031】
<jsp:include page=""> 父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面. <%@include fil ...
- this.getClass().getResource("") url path file 区别
首先注意 "/word/appointDismiss.docx" 前面一定要加 /,有一次我就是忘记加/ 查了半天错, 不能写成 "word/appointDismiss ...
- python3.0_day9_scoket基础之篇
一.socket简单介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求 ...
- python学习之路网络编程篇(第一篇)socket初识
什么是socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为socket.socket通常也称为“套接字”,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的 ...
- php笔记篇(二)
mysql中key .primary key .unique key 与index区别(http://www.manongjc.com/article/1487.html) php is_file() ...
- php 编程笔记分享 - 非常实用
php opendir()列出目录下所有文件的两个实例 php opendir()函数讲解及遍历目录实例 php move_uploaded_file()上传文件实例及遇到问题的解决方法 php使用m ...
- jsp基本语法总结
一,用jsp脚本元素调用java代码 1,jsp表达式的应用 jsp表达式将值直接插入到输出中: <%= Java Expression %> 代表一个值 隐式对象,在使用jsp表达式的 ...
- 27.centos7基础学习与积累-013-文件和目录的权限
从头开始积累centos7系统运用 大牛博客: https://blog.51cto.com/yangrong/p5 https://blog.oldboyedu.com/ 文件的权限 rw-r--r ...
- 2020/1/31 PHP代码审计之文件包含漏洞
0x00 文件包含简介 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校检,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...
随机推荐
- 零配置简单搭建SpringMVC 项目
SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...
- 简单的方式优化mysql
参考博客 自己笔记本上向mysql导入txt数据,有一个table导入了将近4个小时,而且多个table之间都是相互之间存在关系的,所以做联合查询的时候你会发现问题会十分的多,我之前联合查询两个表就死 ...
- CEF源码编译和生产库的使用
CEF版本是Branch 2171 开发环境是VS2012 查看一下libcef_dll_wrapper工程属性,确定Code Generation 选择MTD(Debug) 或者MT(Release ...
- 18-ES6(1)
第18课-ES6(1) 模块化 1.export和import // model.js export default let m = 1; // 出错 export default n = 2; le ...
- /usr/include/features.h:367:25:fatal errorXXXXXX类似这种问题
解决方案: sudo apt-get install g++=multilib //至于为什么还没搞清楚,搞清楚在写上来吧!
- C# HttpWebRequest GET HTTP HTTPS 请求
下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse ...
- 一位程序员如何修炼成CTO
几乎整个互联网行业都缺CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找CTO的需求,嗯,算下来超过两位数了,光最近一个月就有3个,而且这三家都是刚拿了A轮的. ...
- 运行Shell脚本的几种方式解析
1 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh, 如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可 2 sh/b ...
- road习题(一)
答案:[D] 答案:[C] 分析需要靠人 答案:[B] 答案:[B] c语言本身支持自定义函数 答案:[B] Virtual User Generator:是一个脚本开发组件 说白了就是虚拟机用户发生 ...
- phpstorm取消强制换行
1 取消phpstorm右侧竖线显示 2 取消格式化代码时 自动换行