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的更多相关文章

  1. <%@ include file="">和<jsp:include file="">区别

    <%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行. <jsp:include p ...

  2. <jsp:include>和<%@include file=""%>区别【131031】

    <jsp:include page=""> 父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面. <%@include fil ...

  3. this.getClass().getResource("") url path file 区别

    首先注意 "/word/appointDismiss.docx" 前面一定要加 /,有一次我就是忘记加/ 查了半天错, 不能写成 "word/appointDismiss ...

  4. python3.0_day9_scoket基础之篇

    一.socket简单介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求 ...

  5. python学习之路网络编程篇(第一篇)socket初识

    什么是socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为socket.socket通常也称为“套接字”,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的 ...

  6. php笔记篇(二)

    mysql中key .primary key .unique key 与index区别(http://www.manongjc.com/article/1487.html) php is_file() ...

  7. php 编程笔记分享 - 非常实用

    php opendir()列出目录下所有文件的两个实例 php opendir()函数讲解及遍历目录实例 php move_uploaded_file()上传文件实例及遇到问题的解决方法 php使用m ...

  8. jsp基本语法总结

    一,用jsp脚本元素调用java代码 1,jsp表达式的应用 jsp表达式将值直接插入到输出中: <%= Java Expression %>  代表一个值 隐式对象,在使用jsp表达式的 ...

  9. 27.centos7基础学习与积累-013-文件和目录的权限

    从头开始积累centos7系统运用 大牛博客: https://blog.51cto.com/yangrong/p5 https://blog.oldboyedu.com/ 文件的权限 rw-r--r ...

  10. 2020/1/31 PHP代码审计之文件包含漏洞

    0x00 文件包含简介 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校检,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...

随机推荐

  1. cocos2dx && Lua 环境配置

    需要的材料: 1.vs2013 2.python-2.7.3(2.7.x高于2.7的版本可能会出现错误) 3.Sublime Text 2(破解的) 4.cocos2dx-3.2 步骤: 1.安装vs ...

  2. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  3. PHP的一些开源项目网站

    https://github.com/wenzhixin/bootstrap-table https://github.com/1000hz/bootstrap-validator

  4. strom的使用01

    1.strom的安装和测试 1.1 搭建zookeeper集群 参考hadoop2.0初识1.3中的1.4配置zookeeper集群和自动故障转移 1.2 安装storm依赖的软件 sudo yum ...

  5. CentOS 7 程序自启动的问题

    Mysql具体的安装方法见http://www.cnblogs.com/yoyotl/p/5752437.html 但是关于自启动部分需要多一些说明. 一.问题现象: 系统重启后,发现mysqld服务 ...

  6. MySQL基本数据类型

    MySQL数据类型包括:整型.浮点型.日期类型.字符型,这里用表格的方式详细说明每个数据类型,这些只要记住常用的即可,需要再查阅. 整型 数据类型 存储范围 字节 TINYINT 有符号值:-128 ...

  7. 读《编写可维护的JavaScript》第11章总结

    这周也是拿到了同程的offer,从此走上了前端之路!感谢我的贵人们.再次纪念一下~! 第11章 不是你的对象不要动 11.1 什么是你的 你的对象:当你的代码创建了这些对象或者你有职责维护其他人的代码 ...

  8. consul模板的说明2

    保证模板的正常执行 使用||true $ consul-template -template "in.ctmpl:out.file:service nginx restart || true ...

  9. leetcode题目清单

    2016-09-24,开始刷leetcode上的算法题,下面整理一下leetcode题目清单.Github-leetcode 1.基本数学 Two Sum Palindrome Number Cont ...

  10. HTML特殊转义字符列表

    HTML特殊转义字符列表 最常用的字符实体 显示  说明  实体名称  实体编号   空格       <       小于   <  < >  大于  > > & ...