码迷,mamicode.com
首页 > 其他好文 > 详细

第十四周课程总结&实验报告(简单记事本的实现)

时间:2019-11-30 00:11:03      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:lse   override   pen   dialog   pad   value   多次   sql数据类型   timestamp   

本周完成了JDBC 的学习,请对此内容进行总结。
完成简单记事本的练习。

实验报告

import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.*;

public class wordpad implements ActionListener {

    JFrame jf;
    JMenuBar jmb;
    JMenu filem,editMenu,formatm,viewm,helpm;
    JMenuItem newi,openi,savei,closei,pagei,printi,savedi;
    JScrollPane jsp;
    JTextArea area;
    JFileChooser jfc;
    File file;
    
    public wordpad(){
        jf = new JFrame("记事本");
        jmb = new JMenuBar();
        filem= new JMenu("文件(F)");
        editMenu= new JMenu("编辑(E)");
        formatm = new JMenu("格式(O)");
        viewm = new JMenu("查看(V)");
        helpm = new JMenu("帮助(H)");
        
        //实例化菜单项
        newi = new JMenuItem("新建(N)");
        openi = new JMenuItem("打开(O)");
        savei = new JMenuItem("另存为(A)");
        closei = new JMenuItem("关闭(X)");
        pagei = new JMenuItem("页面设置(U)");
        printi = new JMenuItem("打印(P)");
        savedi = new JMenuItem("保存(S)");
        area = new JTextArea();
        jsp = new JScrollPane(area);
        
        newi.addActionListener(this);
        openi.addActionListener(this);
        savei.addActionListener(this);
        closei.addActionListener(this);
        pagei.addActionListener(this);
        printi.addActionListener(this);
        savedi.addActionListener(this);
        
        //给‘文件’菜单添加菜单项
        filem.add(newi);
        filem.add(openi);
        filem.add(savedi);
        filem.add(savei);
        filem.addSeparator();
        filem.add(pagei);
        filem.add(printi);
        filem.addSeparator();
        filem.add(closei);
        
        //给菜单项设置助记符和快捷键
        newi.setMnemonic('N');
        newi.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
        openi.setMnemonic('O');
        openi.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
        savei.setMnemonic('A');
        savei.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK));
        closei.setMnemonic('X');
        closei.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));
        pagei.setMnemonic('U');
        pagei.setAccelerator(KeyStroke.getKeyStroke('U',java.awt.Event.CTRL_MASK));
        savedi.setMnemonic('S');
        savedi.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
        printi.setMnemonic('P');
        printi.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK));
        
        jmb.add(filem);
        jmb.add(editMenu);
        jmb.add(formatm);
        jmb.add(viewm);
        jmb.add(helpm);
        
        
        jf.setJMenuBar(jmb);
        jf.add(jsp);
        jf.setSize(600,500);
        jf.setVisible(true);
        
    }

    @Override
    public void actionPerformed(ActionEvent event){
        Object obj = event.getSource();
        if(obj instanceof JMenuItem){
            JMenuItem item = (JMenuItem)obj;
            if(item == newi){
                new wordpad();
            }else if(item==openi){
                jfc=new JFileChooser();
                jfc.showOpenDialog(null);
                file = jfc.getSelectedFile();
                
                try {
                    FileInputStream fis = new FileInputStream(file);
                    byte[] b = new byte[fis.available()];
                    fis.read(b);
                    area.append(new String(b));
                    fis.close();
                    
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else if(item==savei) {
                jfc=new JFileChooser();
                jfc.showSaveDialog(null);
                file = jfc.getSelectedFile();
                
                    try {
                        if(!file.exists()) {       //如果不存在这个文件就新建一个,如果已存在,就直接保存到已有的这个文件中
                            file.createNewFile();
                        }
                        
                        FileOutputStream fos = new FileOutputStream(file);
                        byte[] b = area.getText().getBytes();
                        fos.write(b);
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
            }
            else if(item==closei) {
                System.exit(1);
            }
            
        }
        
    }
    
}
测试

public class test {

    public static void main(String[] args) {
        new wordpad();

    }
}

运行结果

技术图片
技术图片
技术图片
技术图片

学习小结

JDBC

主要操作类及接口
java.sql.DriverManager 用于管理jdbc驱动程序
Java.sql.Connection 用于建立与特定数据库的连接
Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问
java.sql.Date 用于表示与SQL DATE相同的日期类型,该日期不包括时间
java.sql.Timestamp 用于表示SQL时间戳,并增加了一个能表示ns(纳秒)的时间域
等等...

MySQL数据库

常用命令

连接MySQL数据库:mysql -u 用户名 -p 密码
创建数据库:CREATE DATABASE 数据库名称;
删除数据库:DROP DATABASE 数据库名称;
使用数据库:USE 数据库名称;
创建数据库表:
CREATE TABLE 表名称(
字段名称1 字段类型 [DEFAULT 默认值] [约束],
字段名称2 字段类型 [DEFAULT 默认值] [约束],
...
字段名称n 字段类型 [DEFAULT 默认值] [约束]
);
删除数据库表: DROP TABLE 表名称;
查看表结构:DESC 表名称;
查看全部数据库:SHOW DATABASE;
查看一个数据库的全部表:SHOW TABLES;

SQL语法基础

创建数据库时人员编号使用AUTO_INCREAMENT完成自动增长列的操作。
MySQL数据类型23种。
向表中增加数据:INSERT INTO 表名称[(字段1,字段2,字段3,...,字段n)]VALUES(值1,值2,值3,...,值n);
删除表中数据:DELETE FROM 表名称 [删除条件]; 删除条件最好要指定,如果没有指定,则表示删除一张表中全部数据。
更新数据:UPDATE 表名称 SET 字段 1=值1,...,字段n=值1 [WHERE 更新条件]; 更新条件最好要指定,如果没有指定,则表示修改一张表中全部数据。
查询数据:
SELECT {*|column alias}
FROM 表名称 别名
[WHERE condition(s)]; --->设置查询条件

加载数据库驱动程序
package database;

public class Text {
        public static final String DBDRIVER="ora.gjt.mm.mysql.Driver";
    public static void main(String[] args) {
        try {
            Class.forName(DBDRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
连接及关闭数据库

使用DriverManager类连接数据库和Connection接口
连接地址格式:
jdbc:mysql://IP地址:端口号/数据库名称

第十四周课程总结&实验报告(简单记事本的实现)

标签:lse   override   pen   dialog   pad   value   多次   sql数据类型   timestamp   

原文地址:https://www.cnblogs.com/LeeMayZ/p/11959152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!