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

    简单记事本的实现

    源代码

    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接口,所有数据库的操作都从此接口开始。

     连接数据库

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

  • 相关阅读:
    Java实现 LeetCode 343 整数拆分(动态规划入门经典)
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 338 比特位计数
    H264(NAL简介与I帧判断)
    分享一段H264视频和AAC音频的RTP封包代码
  • 原文地址:https://www.cnblogs.com/JokerXue/p/11945537.html
Copyright © 2011-2022 走看看