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

    简单日记本的实现

    源代码

    package Book;
    
    import java.awt.FileDialog;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintStream;
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.KeyStroke;
    
    public class BookDemo implements ActionListener{
    	private JFrame frame;
    	private JMenu fileMenu,editMenu;//菜单
    	private JMenuBar bar;//存放菜单的组件
    	private JMenuItem newItem,openItem,saveItem,saveasItem,closeItem;//在菜单中创建新的菜单项
    	private JTextArea area;//定义一个文本域
    	private ImageIcon newIcon,openIcon,saveIcon,saveasIcon,closeIcon;
    	private JScrollPane scroll;//定义一个滚动条
    	JFileChooser chooser;
    	File file;
    	FileDialog savedia;
    	
    	public BookDemo(){
    		frame = new JFrame("记事本");
    		fileMenu = new JMenu("文件");
    		bar = new JMenuBar();
    		editMenu = new JMenu("编辑");
    		newItem = new JMenuItem("新建(N)");
    		openItem = new JMenuItem("打开(O)");
    		saveItem = new JMenuItem("保存(S)");
    		saveasItem = new JMenuItem("另存为(A)");
    		closeItem = new JMenuItem("关闭(X)");
    		//在菜单项上加入图片
    		newIcon = new ImageIcon("d:" + File.separator + "image1" + File.separator + "1.png");
            openIcon = new ImageIcon("d:" + File.separator + "image1" + File.separator + "2.png");
            saveIcon = new ImageIcon("d:" + File.separator + "image1" + File.separator + "3.png");
            saveasIcon = new ImageIcon("d:" + File.separator + "image1" + File.separator + "4.png");
            closeIcon = new ImageIcon("d:" + File.separator + "image1" + File.separator + "5.png");
            newItem = new JMenuItem("新建(N)", newIcon);
            openItem = new JMenuItem("打开(O)", openIcon);
            saveItem = new JMenuItem("保存(S)", saveIcon);
            saveasItem = new JMenuItem("另存为(A)", saveIcon);
            closeItem = new JMenuItem("关闭(X)", closeIcon);
    		//加入可编辑的文本域,并根据自身需要加入垂直和水平的滚动条
    		area = new JTextArea();
    		scroll = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    		//添加文件菜单和编辑菜单
    		bar.add(fileMenu);
    		bar.add(editMenu);
    		//在文件菜单上添加菜单项
    		fileMenu.add(newItem);
    		fileMenu.add(openItem);
    		fileMenu.add(saveItem);
    		fileMenu.add(saveasItem);
    		fileMenu.add(closeItem);
    		//添加菜单项的助记符
    		newItem.setMnemonic(KeyEvent.VK_N);
    		openItem.setMnemonic(KeyEvent.VK_O);
    		saveItem.setMnemonic(KeyEvent.VK_S);
    		saveasItem.setMnemonic(KeyEvent.VK_A);
    		closeItem.setMnemonic(KeyEvent.VK_X);
    		//添加快捷键的组合键
    		newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,KeyEvent.CTRL_DOWN_MASK));
    		openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,KeyEvent.CTRL_DOWN_MASK));
    		saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,KeyEvent.CTRL_DOWN_MASK));
    		saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,KeyEvent.CTRL_DOWN_MASK));
    		closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,KeyEvent.CTRL_DOWN_MASK));
    		//在菜单项上加入动作监听器
    		newItem.addActionListener(this);
    		openItem.addActionListener(this);
    		saveItem.addActionListener(this);
    		saveasItem.addActionListener(this);
    		closeItem.addActionListener(this);
    		area.setEditable(true);//使文本域可编辑
    		frame.add(scroll);
    		frame.setJMenuBar(bar);
    		frame.setVisible(true);
    		frame.setSize(400, 300);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent event) {
    		Object obj = event.getSource();
    		if(obj instanceof JMenuItem) {
    			JMenuItem item = (JMenuItem) obj;
    		    if(item == newItem) {
    		    	new BookDemo();
    		    }else if(item == openItem) {
    		    	chooser = new JFileChooser();
                    chooser.showOpenDialog(null);
                    file = chooser.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 == saveItem) {
    		    	if(file!=null) {
                        try {
                        	PrintStream out = new PrintStream(new FileOutputStream(file));
                            out.print(this.area.getText());
                            out.close();
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }
                    }else if(file == null){
                    	savedia = new FileDialog(frame,"保存",FileDialog.SAVE);
    		    		savedia.setVisible(true);
    		    		String diaPath = savedia.getDirectory();
    		    		String fileName = savedia.getFile();
    		    		if(diaPath == null ||fileName == null) {
    		    			file = new File(diaPath,fileName);
    		    		}
                    }
    		    	
    		    }else if(item == saveasItem) {
    		    	chooser.showSaveDialog(null);
                    file = chooser.getSelectedFile();
                    if(!file.exists()) {
                        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 == closeItem) {
    		    	System.exit(1);
    		    }
    			
    		}
    		
    	}
    }
    public class TextPad{
    	public static void main(String args[]) {
    		new BookDemo();
    	}
    }
    
    

    运行截图




    简单笔记本老师很久之前就讲过了,在之前的博客里有详细总结。

    学习总结

    这周老师上课讲解了JDBC。

    何为JDBC?

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。

    JDBC主要操作的类及接口

    JDBC如何连接数据库?

    JDBC是由Sun公司为简化Java程序访问数据库二指定的一套面向对象的应用程序接口。JDBC不能直接访问数据库,必须依赖于数据库厂商提供的JDBC驱动程序实现对底层数据库的操作。在数据库建立连接与访问时,一定记住先获得驱动器类库(jar包),并将其添加到项目中。

    第一步:导入jar驱动包

    1.鼠标放在工程目录下的src目录上,点击右键,选择Build Path
        2.在Build Path下选择configure Build Path...
        3.点击选择Libraries,并在右边选择Add External JARs...
        4.找到提前准备好的jdbc的jar包并点击打开
        5.点击OK

    第二步:动态加载驱动

    在main函数内输入 Class.forName("com.mysql.jdbc.Driver");
        有异常则抛出异常或者室友try/catch捕获异常

    第三步:创建数据库连接

    Connection conn = DriverManager.getConnection(url,user,password)

    url : 需要进行操作的数据库的详细路径,格式为:jdbc:mysql://127.0.0.1:3306/数据库名
        
        user : 数据库的用户名 ,一般为root;
        
        password : 数据库的连接密码

    第四步: 对数据库进行操作(分为 PreparedStatement 和 Statement)

    本周还没有对数据库进行练习,不清楚会遇到哪些错误。老师讲的很快,还没有弄明白,只是查阅了一些资料。

  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/clayLJX/p/11957526.html
Copyright © 2011-2022 走看看