I/O

时间:2022-06-08 21:49:51

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);
    }
    
}

随机推荐

  1. javaScript 相关笔记

    1.js中对象复制 思路:将js对象先转成json字符串,然后再将json字符串转换为两个对象

  2. Jquery select 选中项中自定义的值

    给select 赋值,除了已有的value及text,新建一属性simple_name function GetDicOfficeList(dicType, sid) { $.ajax({ url: ...

  3. HTML基础总结&lt&semi;段落&gt&semi;

    HTML 段落 段落是通过 <p> 标签定义的. 实例 <p>This is a paragraph </p><p>This is another pa ...

  4. SICP-Elements of program

    编程语言=组合简单形成复杂的工具 简单的声明和表达式 简单元素之间的组合方式 组合后元素的抽象方式 程序=数据+函数 数据是我们要处理的内容 函数是我们处理数据的方式 函数式与中缀式 函数式不会出现歧 ...

  5. Automatically populating &dollar;HTTP&lowbar;RAW&lowbar;POST&lowbar;DATA is deprecated&period;&period;&period;&period;&period;&period;

    Automatically populating $HTTP_RAW_POST_DATA is deprecated... 1 这个问题和PHP版本有关系,PHP 5.6已经废弃了$HTTP_RAW_ ...

  6. python中的lambda表达式

    lambda是python中匿名函数的写法  我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def  plus(a,b): return a+b lambda方法  ...

  7. Struts2&comma;springMVC获取request和response

    springMVC获取request和response1:在BaseController中加入: protected HttpServletRequest request;   protected H ...

  8. alpha冲刺(7&sol;10)

    前言 队名:旅法师 作业链接 队长博客 燃尽图 会议 会议照片 会议内容 陈晓彬(组长) 今日进展: 召开会议 撰写博客 项目初步整合前端代码 问题困扰: 大家可能因为某些问题会联系卡在某个点很久,需 ...

  9. MySql主从同步和延迟同步

    MySql同步与延迟同步 Mysql同步 一 Mysql主服务器上操作 1 开启服务器上的log_bin功能 # vim/etc/my.cnf 增加一下两行 log_bin=mysql-bin ser ...

  10. 雷林鹏分享:C&num; 属性(Property)

    C# 属性(Property) 属性(Property) 是类(class).结构(structure)和接口(interface)的命名(named)成员.类或结构中的成员变量或方法称为 域(Fie ...