• 第十四周课程总结&实验报告


    简单记事本的实现

    源代码

    package 记事本;
    import javax.swing.*;
    import java.awt.event.*;
    import java.io.*;
    
    public class TextPad implements ActionListener{
        JFrame frame;
        JMenuBar bar;
        JMenu fileMenu,editMenu;
        JMenuItem newItem,openItem,saveItem,closeItem;
        ImageIcon newIcon,openIcon,saveIcon,closeIcon;
        JTextArea text;
        JScrollPane scroll;
        JFileChooser jfc;
        File file;
        
        public TextPad(){
            frame=new JFrame("LJ");
            bar=new JMenuBar();
            fileMenu=new JMenu("文件");
            editMenu=new JMenu("编辑");
            newItem=new JMenuItem("新建",newIcon);
            openItem=new JMenuItem("打开",openIcon);
            saveItem=new JMenuItem("保存",saveIcon);
            closeItem=new JMenuItem("关闭",closeIcon);
            newIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"new.gif");
            openIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"open.gif");
            saveIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"save.gif");
            closeIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"close.gif");
            text=new JTextArea();
            scroll=new JScrollPane(text);
            
            newItem.setMnemonic('N');
            openItem.setMnemonic('O');
            saveItem.setMnemonic('S');
            closeItem.setMnemonic('X');
            
            newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
            openItem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
            saveItem.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
            closeItem.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));
            
            
            fileMenu.add(newItem);
            fileMenu.add(openItem);
            fileMenu.add(saveItem);
            fileMenu.add(closeItem);
            
            newItem.setIcon(newIcon);
            openItem.setIcon(openIcon);
            saveItem.setIcon(saveIcon);
            closeItem.setIcon(closeIcon);
            
            bar.add(fileMenu);
            bar.add(editMenu);
            text.setEditable(true);
            
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent arg0) {
                    System.exit(1);
                }});
            
            this.newItem.addActionListener(this);
            this.openItem.addActionListener(this);
            this.saveItem.addActionListener(this);
            this.closeItem.addActionListener(this);
            
            frame.add(scroll);
            frame.setJMenuBar(bar);
            frame.setVisible(true);
            frame.setSize(300, 300);
            frame.setLocation(300, 200);
            
        }
        public void actionPerformed(ActionEvent e) {
            Object obj = e.getSource();
            if(obj instanceof JMenuItem) {
            JMenuItem item = (JMenuItem)obj;
            
            if(item==newItem) {
                new TextPad();
            }
            
            else if(item==openItem) {
                jfc=new JFileChooser();
                jfc.showOpenDialog(null);
                file=jfc.getSelectedFile();
                try {
                    FileInputStream fis=new FileInputStream(file);
                    byte b[]=new byte[fis.available()];
                    fis.read(b);
                    text.append(new String(b));
                    fis.close();
                }catch(FileNotFoundException e1) {
                    e1.printStackTrace();
                }catch(IOException e1) {
                    e1.printStackTrace();
                }
            }
            
            else if(item==saveItem) {
                jfc=new JFileChooser();
                jfc.showSaveDialog(null);
                file=jfc.getSelectedFile();
                if(!file.exists()) {
                    try {
                        file.createNewFile();
                    }catch(IOException e2) {
                        e2.printStackTrace();
                    }
                    try {
                        FileOutputStream fis=new FileOutputStream(file);
                        byte[] b=text.getText().getBytes();
                        try {
                            fis.write(b);
                            fis.close();
                        }catch(IOException e3) {
                            e3.printStackTrace();
                        }
                    }
                    catch(FileNotFoundException e3) {
                            e3.printStackTrace();
                        
                    }
            }
        }    
            
            else if(item==closeItem) {
                System.exit(1);;
            }
          }
       }
    }

    运行截图

      总结:本次题目是上周学习的知识,包含上上周学习的窗体、文本域、滚动条等,上周的新知识有菜单JMenuBar组件、JMenu组件等以用来实现记事本的模板完成。此题让我的一个收获是明白了滚动条加在窗体中时,需要在加入文本域之后加,不然滚动条在文本域中显示不出来。

    学习总结

    JDBC:提供一种与平台无关的用于执行SQL语句的标准Java Apl,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成。

    JDBC驱动分类:JDBC-ODBC桥驱动:     程序—————>JDBC——————>ODBC———————>数据库      用来进行数据连接操作,但是性能比较低。、

    JDBC本地驱动:    程序——————>JDBC——————>数据库       只应用在特定的数据库上,会丧失掉程序的可移植性,但是性能较高。

     

    JDBC的主要操作类及接口

     

     MySQL数据库

    一个小型关系型数据库管理系统,开发者为MySQL  AB公司。课本上有他的安装及配置。

    常用命令:连接MySQL数据库:

    mysql-u用户名 -p密码

    创建和删除数据库:

    创建:CREATE DATABASE  数据库名称
    删除:DROP DATABASE    数据库名称

     使用数据库

    USE 数据库名称

    创建数据库表

    CREATE TABLE表名称{
        字段名称1    字段类型【DEFAULT 默认值】【约束】
        字段名称2    字段类型【DEFAULT 默认值】【约束】
     。。。。
        字段名称3    字段类型【DEFAULT 默认值】【约束】
    }

     删除数据库表

    DROP TABLE 表名称

    查看表结构

    DESC  表名称

    查看数据库信息

    查看全部数据库: SHOW DATABASES;

    查看一个数据库的全部表:SHOW TABLES;

    连接数据库

    加载驱动程序

     连接及关闭数据库

     Connection接口,所有数据库的操作都从此接口开始。

     连接数据库

     总结:本周学习的数据库,第一次接触的东西,听大三学长说数据库对我们以后要学习的东西很重要,作业很大。刚刚开始听的时候真的有点抽象,抽象的东西搬来搬去,也不知道搬什么,后面仔细品读书本后,在脑海中能有点模糊的构想。继续研读课本吧。

  • 相关阅读:
    Web大前端面试题-Day12
    Web大前端面试题-Day11
    每天刷Web面试题(前10天汇总)
    Web大前端面试题-Day10
    Web大前端面试题-Day9
    Web大前端面试题-Day8
    Web大前端面试题-Day5
    Web大前端面试题-Day7
    Web大前端面试题-Day6
    php获取时间是星期几
  • 原文地址:https://www.cnblogs.com/JokerXue/p/11945537.html
Copyright © 2020-2023  润新知