第十三周课程总结

记事本
一:实验代码

import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Reader implements ActionListener {    //监听
    JFrame frame;
    JMenuBar bar;
    JMenu fileMenu;
    ImageIcon newIcon,openIcon,saveIcon,closeIcon,savesIcon;
    JMenuItem newItem,openItem , saveItem,closeItem,savesItem,obj;
    JFileChooser chooser;
    File file;
    JTextArea area;
    public Reader() {
       frame=new JFrame("TZM");
       bar=new JMenuBar();
       fileMenu=new JMenu("文件");        
       newIcon=new ImageIcon("d:"+File.separator+"tu"+File.separator+"1.png");
       openIcon=new ImageIcon("d:"+File.separator+"tu"+File.separator+"2.png");
       saveIcon=new ImageIcon("d:"+File.separator+"tu"+File.separator+"3.png");
       savesIcon=new ImageIcon("d:"+File.separator+"tu"+File.separator+"3.png");
       closeIcon=new ImageIcon("d:"+File.separator+"tu"+File.separator+"4.png");
       newItem = new JMenuItem("新建(N)",newIcon);
      openItem = new JMenuItem("打开(O)",newIcon);
       saveItem = new JMenuItem("另存为(A)",newIcon);
       savesItem = new JMenuItem("保存(B)",newIcon);
       closeItem = new JMenuItem("关闭(X)",newIcon);
       area=new JTextArea();
      newItem.setMnemonic(KeyEvent.VK_N);    //快捷键
      openItem.setMnemonic(KeyEvent.VK_O);
      saveItem.setMnemonic(KeyEvent.VK_A);
      savesItem.setMnemonic(KeyEvent.VK_B);
      closeItem.setMnemonic(KeyEvent.VK_X);
      newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
      openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
      saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
      savesItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_DOWN_MASK));
      closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
      fileMenu.add(newItem);
      fileMenu.add(openItem);
      fileMenu.add(saveItem);
      fileMenu.add(savesItem);
      fileMenu.add(closeItem);
      JScrollPane scroll =new  JScrollPane(area, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//加滚动条
      fileMenu.addSeparator();
      newItem.addActionListener(this);
      openItem.addActionListener(this);
      saveItem.addActionListener(this);
      savesItem.addActionListener(this);
      closeItem.addActionListener(this);
      bar.add(fileMenu);
      frame.setJMenuBar(bar);
      
      frame.add(scroll);
      frame.setVisible(true);
      frame.pack();
     }
    @Override
    public void actionPerformed(ActionEvent e) {        
        Object obj= e.getSource();// 获得事件监听的对象
        if(obj instanceof JMenuItem) {
            JMenuItem item=(JMenuItem) obj;
            if(item==newItem) {       //新建
                new Reader();
            }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 e1) {
                    e1.printStackTrace();
                }catch(IOException e1) {
                    e1.printStackTrace();
                }
            }else if(item==saveItem){                //另存为
                chooser.showOpenDialog(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 e1) {
                        e1.printStackTrace();
                }   
            }else if(item == savesItem) {               //保存
                if(file!=null) {
                    try {
                        PrintStream out = new PrintStream(new FileOutputStream(file));
                        out.print(this.area.getText());
                        out.close();
                    } catch (FileNotFoundException e1) {
                        
                        e1.printStackTrace();
                    }
                }
                
            }else if(item==closeItem){           //关闭
                System.exit(1);
            }
                }
                
            }
        }
        

二:实验截图
第十三周课程总结_第1张图片
第十三周课程总结_第2张图片
第十三周课程总结_第3张图片
第十三周课程总结_第4张图片

总结:
这个记事本主要按照老师的方法来写的,然后在加了保存。PrintStream是I/O(输入/输出)流的一种,属于输出流,通过PrintStream可以将文字打印到文件或者网络中去,通俗点就是可以通过它把一段文字保存到文件中,或者如果是网络链接的话可以将文字发送到网络的那端。创建新的打印流,就是创建一个新的PrintStream对象,通过newPrintStream(OutStream/或者其他参数)完成。
鼠标事件及其处理:
第十三周课程总结_第5张图片
第十三周课程总结_第6张图片

单选钮:JRadioButton
第十三周课程总结_第7张图片

复选框:JCheckBox
第十三周课程总结_第8张图片

JMenuBar
第十三周课程总结_第9张图片

JMenu
第十三周课程总结_第10张图片

JMenuItem
第十三周课程总结_第11张图片

你可能感兴趣的:(第十三周课程总结)