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

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

    实验代码:

    package 记事本;

    import java.awt.BorderLayout;

    import java.awt.Color;

    import java.awt.ComponentOrientation;

    import java.awt.Container;

    import java.awt.Dialog;

    import java.awt.FlowLayout;

    import java.awt.Font;

    import java.awt.GraphicsEnvironment;

    import java.awt.GridLayout;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.FocusEvent;

    import java.awt.event.FocusListener;

    import java.awt.event.ItemEvent;

    import java.awt.event.ItemListener;

    import java.awt.event.MouseWheelEvent;

    import java.awt.event.MouseWheelListener;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.InputStream;

    import java.io.PrintStream;

    import java.util.Calendar;

    import java.util.GregorianCalendar;

    import java.util.Scanner;

     

    import javax.swing.BorderFactory;

    import javax.swing.ButtonGroup;

    import javax.swing.Icon;

    import javax.swing.ImageIcon;

    import javax.swing.JButton;

    import javax.swing.JCheckBox;

    import javax.swing.JColorChooser;

    import javax.swing.JComboBox;

    import javax.swing.JComponent;

    import javax.swing.JDialog;

    import javax.swing.JFileChooser;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JMenu;

    import javax.swing.JMenuBar;

    import javax.swing.JMenuItem;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JRadioButton;

    import javax.swing.JScrollPane;

    import javax.swing.JSplitPane;

    import javax.swing.JTabbedPane;

    import javax.swing.JTextArea;

    import javax.swing.JTextField;

    import javax.swing.KeyStroke;

    import javax.swing.event.CaretEvent;

    import javax.swing.event.CaretListener;

    import javax.swing.filechooser.FileNameExtensionFilter;

    import javax.swing.text.BadLocationException;

    import javax.swing.undo.UndoManager;

     

    public class Notepad implements ActionListener , CaretListener , ItemListener , MouseWheelListener{

        //记事本窗口

        static int windownum=0; //记录窗口数目

        int pos,lineOfC,col,zishu,lastzishu; //行、列、字数、新建打开文本时的字数

        boolean ischange; //记录文本域是否被改变过

        JFrame HL = new JFrame("无标题 - 记事本"); //声明一个窗体对象

        Container cont =HL.getContentPane(); //得到窗体容器

        JTextArea jta = new JTextArea(); //构造一个文本域

        JScrollPane scr = new JScrollPane(jta,

                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//滚动条组件,按需要出现

        JMenu menuFile = new JMenu("文件(F)"); //定义JMenu组件

        JMenu editFile = new JMenu("编辑(E)"); //定义JMenu组件

        JMenu formatFile = new JMenu("格式(O)"); //定义JMenu组件

        JMenu visonFile = new JMenu("查看(V)"); //定义JMenu组件

        JMenu zoomFile = new JMenu("缩放(Z)"); //定义JMenu组件

        JMenu helpFile = new JMenu("帮助(H)"); //定义JMenu组件

        JMenuBar menuBar = new JMenuBar(); //定义JMenuBar

        JMenuItem newItem = new JMenuItem("新建(N)");//创建JMenuItem

        JMenuItem windowItem = new JMenuItem("新窗口(W)");//创建JMenuItem

        JMenuItem openItem = new JMenuItem("打开(O)");//创建JMenuItem

        JMenuItem exitItem = new JMenuItem("退出(E)");//创建JMenuItem

        JMenuItem typeface = new JMenuItem("字体(F)");//创建JMenuItem

        JMenuItem saveItem = new JMenuItem("保存(S)");//创建JMenuItem

        JMenuItem osaveItem = new JMenuItem("另存为(B)");//创建JMenuItem

    //文件

        File file = null; //接收打开的文

        int result = 0; //接收操作的结果

        JFileChooser fileChooser = new JFileChooser();//实例化文件选择框

     

    public Notepad(){

            windownum++;     //记事本窗口数加一

            ischange=true; //文本域没被改变过

            //记事本窗体

            HL.setLayout(new BorderLayout());//设置布局管理器

    saveItem.addActionListener(this); //加入菜单项监听

            osaveItem.addActionListener(this); //加入菜单项监听

            openItem.addActionListener(this); //加入菜单项监听

    openItem.setMnemonic('O'); //设置快捷键O

            saveItem.setMnemonic('S'); //设置快捷键S

            osaveItem.setMnemonic('B'); //设置快捷键A

            openItem.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK));//Ctrl+O

            saveItem.setAccelerator(KeyStroke.getKeyStroke('S', java.awt.Event.CTRL_MASK));//Ctrl+S

            osaveItem.setAccelerator(KeyStroke.getKeyStroke('B', java.awt.Event.CTRL_MASK));//Ctrl+A

    menuFile.add(saveItem); //加入菜单项

            menuFile.add(osaveItem); //加入菜单项

            menuFile.add(openItem); //加入菜单项

    menuBar.add(menuFile); //加入menu

    HL.setJMenuBar(menuBar); //加入菜单栏

            HL.add(scr,BorderLayout.CENTER); //文本加入到窗体

    HL.setSize(800,700); //设置窗体大小

            HL.setLocation(600,200); //设置窗体显示位置

            HL.setVisible(true); //让组件显示

            HL.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//退出应用程序不做任何事情,由窗口监听进行处理

    //文件

            fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("文本文档(*.txt)", "txt"));//文件过滤器

    //        fileChooser.setFileFilter(new FileNameExtensionFilter("文本文档(*.txt)", "txt")); //同上

    fileChooser.setSelectedFile(new File("*.txt")); // 设置打开文件选择框后默认输入的文件名

    }

    public void actionPerformed(ActionEvent e) { //动作事件

    if(e.getSource()==osaveItem ||e.getSource()==saveItem){ //判断触发源是否是提交保存按钮

                result = fileChooser.showSaveDialog(this.frame); //显示保存文件框

                }else{

                    if(file!=null){

                        try{

                            PrintStream out = new PrintStream( //实例化打印流对象

                                    new FileOutputStream(file));

                            out.print(this.jta.getText()); //输出全部内容

                            out.close(); //关闭输出流

                            lastzishu=jta.getText().length(); //得到文本长度

                            ischange=true;

                        }catch(Exception ex){ //文件保存失败

                     //do nothing

                        }

                    }

                    HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题

                    

                }

                if(result==JFileChooser.APPROVE_OPTION){ //判断是否选择的是保存

                    file = fileChooser.getSelectedFile(); //选择要保存的文件

                    if(file!=null){

                        try{

                            PrintStream out = new PrintStream( //实例化打印流对象

                                    new FileOutputStream(file));

                            out.print(this.jta.getText()); //输出全部内容

                            out.close(); //关闭输出流

                            lastzishu=jta.getText().length(); //得到文本长度

                            ischange=true;

                        }catch(Exception ex){ //文件保存失败

                     //do nothing

                        }

                    }

                    HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题

                    

                }

            }else if(e.getSource()==openItem){

                if(ischange||HL.getTitle().equals("无标题 - 记事本")&&zishu==0){

                    this.jta.setText(""); //清空文本中的原有内容

                    fileChooser.setApproveButtonText("确定"); //定义确定按钮信息

                    fileChooser.setDialogTitle("打开文件"); //设置文件选择框标题

                    result = fileChooser.showOpenDialog(this.HL);//显示打开对话框

                    if(result==JFileChooser.APPROVE_OPTION){ //表示选择了确定按钮

                        file = fileChooser.getSelectedFile(); //得到选择的File对象

                    }else if(result==JFileChooser.CANCEL_OPTION){ //表示选择了取消按钮

                         //do nothing

                    }else{//result==JFileCHooser.ERROR_OPTION //出现错误

                         //do nothing

                    }

                    if(file!=null){

                        HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题

                        try{

                            Scanner scan = new Scanner(

                                    new FileInputStream(file)); //设置输入流

                            scan.useDelimiter(" "); //设置换行分隔符

                            while(scan.hasNext()){ //循环读取

                                this.jta.append(scan.next()); //读取内容到文本区

                            }

                            scan.close(); //关闭

                            lastzishu=jta.getText().length(); //得到文本长度

                            ischange=true;

                        }catch(Exception ex){

                             //do nothing

                        }

                    }

             }else{

                 ispass=2;

                 isSave.setVisible(true); //跳出isSave窗口

                }

            }

    }

    运行结果:

    课程总结:

    老师以较快的速度讲解了JDBC,所以我只是大概了解,还需要按照课本加以网络的指导完成数据库的安装和基础使用操作。

     

    常用SQL操作命令符

    insertdeleteupdateselect

     update 更新   alter  改变

         

    创建数据库          create database 数据库;

    查看指定数据库   show create database 数据库;

    查看数据库(所有的) show databases;

    修改数据库编码    alter database 数据库 default character set  新编码方式 collate 新编码方式_bin;

    使用数据库          use db

    删除数据库          drop database 数据库;(不能一次删除多个!)

         

    创建表                 create table 表名(列名 数据类型 [not null] [primary key],列名 数据类型 [not null],..) 

    查看所有表           show tables

    查看一个表数据     select * from 表名        *代表所有列  也可以select  列名 from 表名

    删除表                 drop table 表名

    更改表名              rename table 旧表名 to 新表名

         

    增加表内容 插入数据     insert  into  表名(列名,列名...values(值,值...

    修改列中的一条记录      update  表名  set   =   where   =   

    删除列中的一条记录      delete  from  表名   where   =  

         

    增加一个列                  Alter table 表名 add 列名 数据类型

    删除一个列                  Alter table 表名 drop column 列名 

    修改一个列名              Alter table  表名 change 列名  新列名 数据类型;

         

    desc 降序排列

    asc   升序排列

         

    delete 删除记录  结构依然存在   即还可以找到   执行后有提交过程

    drop   结构和数据都删除     一步操作完成

    MySQL基本数据类型

  • 相关阅读:
    [改善Java代码]在equals中使用getClass进行类型判断
    [改善Java代码]equals应该考虑null值的情景
    [改善Java代码]覆写equals方法时不要识别不出自己
    [改善Java代码] 推荐使用序列化实现对象的拷贝
    [改善Java代码]避免对象的浅拷贝
    [改善Java代码]让工具类不可实例化
    [改善Java代码]建议40:匿名类的构造函数很特殊
    [改善Java代码]使用匿名类的构造函数
    [改善Java代码]使用静态内部类提高封装性
    [改善Java代码]构造函数尽量简化
  • 原文地址:https://www.cnblogs.com/hlywzj/p/11957887.html
Copyright © 2011-2022 走看看