14周作业

源代码:

package ob;

import java.awt.*;
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 javax.swing.*;

public class TextMenu implements ActionListener {

    JFrame frame;//定义窗体
    JMenuBar bar;//定义JMenuBar
    JMenu fileMenu;//定义菜单栏
    JMenuItem newItem,openItem,saveItem,closeItem;//定义菜单选项
    ImageIcon newIcon,openIcon,saveIcon,closeIcon;//定义显示图标
    JScrollPane scr;//加入滚动条
    JTextArea area;//定义文本域
    JFileChooser chooser;
    File file;
    FileDialog savedialog;
    
    public TextMenu() {
        
        //实例化
        frame=new JFrame("HSQ");
        bar=new JMenuBar();
        fileMenu=new JMenu("文件");  
        newItem=new JMenuItem("新建(N)");
        openItem=new JMenuItem("打开(O)");
        saveItem=new JMenuItem("另存为(A)");
        closeItem=new JMenuItem("退出(X)");
        newIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"新建.png");
        openIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"打开.png");
        saveIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"另存为.png");
        closeIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"退出.png");
        
        newItem = new JMenuItem("新建(N)", newIcon);
        openItem = new JMenuItem("打开(O)", openIcon);
        saveItem = new JMenuItem("另存为(A)", saveIcon);
        closeItem = new JMenuItem("退出(X)", closeIcon);
        
        area=new JTextArea(10,30);
        area.setLineWrap(true);
        
        scr = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        
        
        //设置快捷键
        newItem.setMnemonic(KeyEvent.VK_N);
        openItem.setMnemonic(KeyEvent.VK_O);
        saveItem.setMnemonic(KeyEvent.VK_A);
        closeItem.setMnemonic(KeyEvent.VK_X);
        
        newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK));
        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK));
        saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK));
        closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK));
        
        //加入菜单项
        fileMenu.add(newItem);
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        fileMenu.add(closeItem);
        
        //加入事件监听器
        newItem.addActionListener(this);
        openItem.addActionListener(this);
        saveItem.addActionListener(this);
        closeItem.addActionListener(this);
        
        bar.add(fileMenu);
        
        frame.setJMenuBar(bar);
        area.setEditable(true);
        
        frame.add(scr);
        frame.setSize(300 ,300);
        frame.setVisible(true);
    }

    //按钮事件监听
    public void actionPerformed(ActionEvent e) {
        
        Object obj=e.getSource();
        if(obj instanceof JMenuItem) {
            JMenuItem item=(JMenuItem) obj;
            if(item==newItem) {
                new TextMenu();
            }
            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 ee) {
                    ee.printStackTrace();
                }catch(IOException eee) {
                    eee.printStackTrace();
                }
                 
            }else if(item==saveItem) {
                chooser.showSaveDialog(null);
                file=chooser.getSelectedFile();
                
                try {
                    if(!file.exists()) {
                        file.createNewFile();
                    }
                    FileOutputStream fos=new FileOutputStream(file);
                    byte[] b=area.getText().getBytes();
                    fos.write(b);
                    fos.close();
                }catch(IOException eee) {
                    eee.printStackTrace();
                }
        
            }else if(item == closeItem) {
                System.exit(1);
            }
          
        }
    }
    
}

总结:本次实验是对前几周所学知识的一次综合实验,讲组件、窗口等充分利用整合起来;让我对之前一些不怎么理解的东西加深了印象

JDBC总结:
目前比较常见的JDBC驱动程序可分为以下四个种类:
(1)JDBC-ODBC桥加ODBC驱动程序
JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。
(2)本地API
这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。
(3)JDBC网络纯Java驱动程序
这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。
(4)本地协议纯Java驱动程序
这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。
JDBC的主要操作类及接口:

posted @ 2019-11-29 20:50  幼稚动感男  阅读(143)  评论(0编辑  收藏  举报