zoukankan      html  css  js  c++  java
  • 第十四周课程总结和实验报告

    源代码

    public class NotePad implements ActionListener{


    JFrame jframe;//窗体
    MenuBar menuB;//菜单条
    Menu menu_Text;//“文件”菜单
    Menu menu_Edit;//“编辑”菜单
    Menu menu_Help;//“帮助”菜单
    MenuItem text_New;//“新建”菜单项
    MenuItem text_Open;//“打开”菜单项
    MenuItem text_Save;//“另存为”菜单项
    MenuItem help_Viewhelp;//“查看帮助”菜单项
    TextArea textArea;//文本域
    FileDialog dia_Open;//“打开文件”对话框窗口
    FileDialog dia_Save;//“保存文件”对话框窗口
    String str=null;//存储文本内容
    StringBuffer stringB=new StringBuffer();//字符串常量
    char[] c;// 将字符串拆成数组
    int[] a;//存储字符串的ASCII值

    NotePad(){
    //创建窗体
    jframe=new JFrame();
    jframe.setTitle("无标题 - 记事本");//初始标题
    jframe.setSize(900,600);//设置大小
    jframe.setVisible(true);//设置窗体可见
    jframe.setLocationRelativeTo(null);//窗体放屏幕中间
    jframe.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);//结束进程

    //创建菜单
    menuB=new MenuBar();//创建菜单条
    menu_Text=new Menu("文件");//创建“文件”菜单
    menu_Edit=new Menu("编辑");//创建“编辑”菜单
    menu_Help=new Menu("帮助");//创建“帮助”菜单
    text_New=new MenuItem("新建");//创建“文件”菜单下的菜单项
    text_Open=new MenuItem("打开");
    text_Save=new MenuItem("另存为");
    help_Viewhelp=new MenuItem("查看帮助");
    menu_Text.add(text_New);//将菜单项添加到菜单中
    menu_Text.add(text_Open);
    menu_Text.add(text_Save);
    menu_Help.add(help_Viewhelp);
    menuB.add(menu_Text);//将菜单添加到菜单条中
    menuB.add(menu_Edit);
    menuB.add(menu_Help);
    jframe.setMenuBar(menuB);//将菜单条添加到窗体中

    //添加监听器
    text_New.addActionListener(this);
    text_Open.addActionListener(this);
    text_Save.addActionListener(this);
    help_Viewhelp.addActionListener(this);

    //FileDialog(Frame parent, String title, int mode):创建一个具有指定标题的文件对话框窗口,用于加载(load)或保存(save)文件
    dia_Open = new FileDialog(jframe,"打开文件",FileDialog.LOAD);
    dia_Save = new FileDialog(jframe,"保存文件",FileDialog.SAVE);


    //创建文本域
    textArea=new TextArea();
    textArea.setBounds(0, 0, jframe.size().width, jframe.size().height);//设置大小
    textArea.setBackground(Color.white);//设置背景颜色
    textArea.setFont(new Font("宋体",0,16));//new Font(String 字体,int 风格,int 字号),Font.PLAIN或者0:普通字体
    jframe.add(textArea);
    }

    //添加点击事件
    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

    //e.getSource():获取点击的菜单项
    if(e.getSource()==text_New){//新建
    do_new();
    }else if(e.getSource()==text_Open){//打开
    do_open();
    }else if(e.getSource()==text_Save){//保存
    do_sava();
    }else if(e.getSource()==help_Viewhelp){
    do_desktop();
    }
    }

    void do_new(){//新建记事本
    if(textArea.getText().equals("")){//判断文本域有无内容
    jframe.setTitle("无标题 - 记事本");//初始标题
    }else{
    warning();
    }
    }


    void do_open(){//打开记事本
    dia_Open.setVisible(true);//对话框可见
    BufferedReader in;//文件缓冲流对象 
    try{
    /*
    * dia_Open.getDirectory():获取文件上一级的路径
    * dia_Open.getFile():获取文件名
    * getDirectory()+getFile():完整文件路径
    */
    textArea.setText(null);//清空内容
    in=new BufferedReader(new FileReader(dia_Open.getDirectory()+dia_Open.getFile()));//选择路径
           //in.readLine():读取一整行(到换行符但不包括换行符)
           while ((str=in.readLine())!= null){
            c=str.toCharArray();// 将字符串拆成数组
    a=new int[str.length()];//存储字符串的ASCII值
    for(int i=0;i<c.length;i++){//解密
    a[i]=(int)c[i]-10;//存储字符串的ASCII值
    if(a[i]<0){//如果ASCII值小于0,则加上255
    a[i]+=255;
    }
    c[i]=(char)a[i];//字符转化为ASCII值
    }
    str=String.valueOf(c);//将char转为string
            textArea.append(str+" ");//使字符串的末尾换行
           }
           in.close();//关闭
           jframe.setTitle(dia_Open.getFile()+" - 记事本");//将打开的窗体标题显示为:文件名+“-记事本”
    } catch (IOException e1) {//抛出异常
    e1.printStackTrace();
       }
    }

    void do_sava(){//保存记事本
    dia_Save.setVisible(true);//对话框可见
    FileOutputStream out;//文件输出流对象
    try {
    out=new FileOutputStream(dia_Save.getDirectory()+dia_Save.getFile()+"[加密].txt");//存为txt格式,文件名为你输入的字符串 
    str=textArea.getText().replace(" ", " ");//获取文本域内容,并将" "换成" "   
    c=str.toCharArray();// 将字符串拆成数组
    a=new int[str.length()];//存储字符串的ASCII值
    for(int i=0;i<c.length;i++){//加密
    a[i]=(int)c[i]+10;//字符转化为ASCII值
    if(a[i]>255){//如果ASCII值大于255,则减去255
    a[i]-=255;
    }
    c[i]=(char)a[i];//ASCII值转化为字符
    }


    str=String.valueOf(c);//将char转为string
    out.write(str.getBytes());//str.getBytes():将字符串转化为字节数组   
    out.flush();//刷新缓冲区
    out.close();//关闭
    jframe.setTitle(dia_Save.getFile()+" - 记事本");//将保存后窗体标题显示为:文件名+"-记事本"
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    }

    void do_desktop(){//打开查看帮助
    Desktop desktop = Desktop.getDesktop();//用默认浏览器打开网页
    try {//打开帮助网页
    desktop.browse(new URI("https://support.microsoft.com"));
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    } catch (URISyntaxException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    }

    void warning(){//弹出警告框

    int option=JOptionPane.showConfirmDialog(null,"是否保存内容?","警告",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE, null);
    switch (option) {
    case JOptionPane.YES_NO_OPTION://点击“是” 
      do_sava();
      break;
    case JOptionPane.NO_OPTION://点击“否”
    textArea.setText(null);
    do_new();
      break;
    }
    }

    public static void main(String[] args){
    //调用NotePad
    new NotePad();
    }
    }

      • 1、JDBC概述
        JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成
        2.JDBC驱动程序分为四类:
        1)JDBC-ODBC桥驱动;
        2)JDBA本地驱动;
        3)JDBC网络驱动;
        4)本地协议纯JDBC驱动;
      • 二、MySQL:

        MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

        常用命令:
        show databases; 显示数据库
        create database name; 创建数据库
        use databasename; 选择数据库
        drop database name 直接删除数据库,不提醒

        show tables; 显示表
        describe tablename; 表的详细描述
        select中加上distinct 去除重复字段

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/csbtmg/p/11960628.html
Copyright © 2011-2022 走看看