第十四周Java学习总结

关于简单记事本和数据库操作

(一)简单记事本:

源代码:

package com.itcast.adc.demo04;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class TextPad implements ActionListener {
    JFrame jFrame;
    JMenuBar jMenuBar;
    JMenu fileMenu,editMenu;
    JTextArea jTextArea;
    JScrollPane jScrollPane;
    ImageIcon newIcon,openIcon,saveIcon,closeIcon;
    JMenuItem newItem,openItem,saveItem,closeItem,baoItem;
    JFileChooser chooser,chooser1,chooser2;

    Object File;


    public TextPad(){
        jFrame=new JFrame("记事本");//创建一个窗体
        jMenuBar=new JMenuBar();//new一个菜单栏,在菜单栏里添加菜单
        fileMenu=new JMenu("文件");//新建俩个菜单
        editMenu=new JMenu("编辑");
        jTextArea=new JTextArea();//new一个多文本组件

        jScrollPane=new JScrollPane(jTextArea);//在文本组件上加入滚动组件
//        newIcon=new ImageIcon("d:"+ File.separator+"images"+File.separator+);
//        openIcon=new ImageIcon("d:"+ File.separator+"images"+File.separator+);
//        saveIcon=new ImageIcon("d:"+ File.separator+"images"+File.separator+);
//        closeIcon=new ImageIcon("d:"+ File.separator+"images"+File.separator+);
        //创建菜单项
        newItem=new JMenuItem("新建(N)", null);
        openItem=new JMenuItem("打开(O)", null);
        baoItem=new JMenuItem("保存(S)",null);
        saveItem=new JMenuItem("另存为(C)", null);
        closeItem=new JMenuItem("关闭(E)", null);

        //助记符
        newItem.setMnemonic(KeyEvent.VK_N);
        openItem.setMnemonic(KeyEvent.VK_O);
        baoItem.setMnemonic(KeyEvent.VK_S);
        saveItem.setMnemonic(KeyEvent.VK_C);
        closeItem.setMnemonic(KeyEvent.VK_E);

        //快捷键
        newItem.setAccelerator(KeyStroke.getKeyStroke('N', InputEvent.CTRL_MASK));
        openItem.setAccelerator(KeyStroke.getKeyStroke('O', InputEvent.CTRL_MASK));
        baoItem.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_MASK));
        saveItem.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));
        closeItem.setAccelerator(KeyStroke.getKeyStroke('E', InputEvent.CTRL_MASK));


        jMenuBar.add(fileMenu);//在菜单栏加菜单
        jMenuBar.add(editMenu);
        fileMenu.add(newItem);//在菜单上加菜单项
        fileMenu.add(openItem);
        fileMenu.add(baoItem);
        fileMenu.add(saveItem);
        fileMenu.addSeparator();//加入分割线
        fileMenu.add(closeItem);

        newItem.addActionListener(this);//给每个菜单项加入监听器!!!
        openItem.addActionListener(this);
        baoItem.addActionListener(this);
        saveItem.addActionListener(this);
        closeItem.addActionListener(this);

        jFrame.add(jScrollPane);
        jFrame.setJMenuBar(jMenuBar);
        jFrame.setVisible(true);
        jFrame.setLocation(180,140);
        jFrame.setSize(1100,550);

    }

    @Override
    public void actionPerformed(ActionEvent e) {

        Object obj=e.getSource();//获取监听事件的对象来源且是父类
        if(obj instanceof JMenuItem){//判断obj对象是否为JMenuItem的实例
            JMenuItem item=(JMenuItem) obj;//将对象转型
            if(item==newItem){
                new TextPad();

            }else if (item==openItem) {
                chooser = new JFileChooser();
                chooser.showOpenDialog(null);
                java.io.File file = chooser.getSelectedFile();
                try {
                    FileInputStream f = new FileInputStream(file);
                    byte[] b = new byte[1024];
                    f.read(b);
                    jTextArea.append(new String(b));
                    f.close();
                } catch (FileNotFoundException ex) {
                    ex.printStackTrace();

                } catch (IOException ex) {
                    ex.printStackTrace();
                }

            }else if ((item==saveItem)||(item==baoItem)){
                chooser1=new JFileChooser();
                chooser1.showSaveDialog(null);
                java.io.File file = chooser1.getSelectedFile();
                try {
                    if(!file.exists()){
                        file.createNewFile();
                    }
                    FileOutputStream fs=new FileOutputStream(file);
                    byte[] b=jTextArea.getText().getBytes();//重要
                    fs.write(b);
                    fs.close();

                } catch (FileNotFoundException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }else if (item==closeItem){
                System.exit(1);
            }
        }

    }
}
package com.itcast.adc.demo04;

public class Test {
    public static void main(String[] args) {
        new TextPad();
    }
}

 运行结果截图:

 关于文件菜单的相关功能已经做出来了,接下来就是 编辑、帮助、格式等等菜单,这个我以后会继续研究!!

相关链接: https://blog.csdn.net/wangha_1/article/details/78937248

(二)数据库的操作(jdbc)

  1. JDBC操作步骤
    (1)加载驱动
    (2)连接数据库
    (3)通过Statement发送sql语句
    通过Prepared Statement发送sql语句
    (4)关闭数据库
1.加载驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";  //MySQL中的数据库驱动程序路径
Class.forName(DBDRIVER);   //利用class类加载驱动程序,需要处理异常
2.连接数据库
........接上
Connection conn = null;
conn = DriverManager.getConnetion(连接地址,用户名,密码);//需处理异常
3.执行数据库
需要使用Statement 接口完成

  2.操作实例

原文地址:https://www.cnblogs.com/changanshisanzhao/p/11957834.html