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 去除重复字段

  • 相关阅读:
    Java开发最佳实践(一) ——《Java开发手册》之"编程规约"
    小程序websocket心跳库——websocket-heartbeat-miniprogram
    并发与多线程
    SqlSessionFactory、SqlSessionFactoryBean、SqlSession和SqlSessionTemplate的不解姻缘系列之一(总体阐述)
    全网最通俗易懂理清mybatis中SqlSession、SqlSessionTemplate、SessionFactory和SqlSessionFactoryBean之间的关系
    java代码之美(16) ---Java8 Optional
    Java基础——多线程
    代码简洁之道(判断篇)
    Spring Boot 入门
    Mybatis Plus入门
  • 原文地址:https://www.cnblogs.com/csbtmg/p/11960628.html
Copyright © 2011-2022 走看看