首页 > 其他 > 详细

第十三周

时间:2019-11-23 16:21:11      阅读:79      评论:0      收藏:0      [点我收藏+]

package test;

import java.awt.Frame;
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.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.KeyStroke;

public class Jsb implements ActionListener{

    JFrame frame;    //窗体
    JMenuBar bar;   //菜单栏
    
    //菜单
    JMenu menuFile,edit;

    //文本框
    JTextArea area;
    
    
    //菜单项
    JMenuItem newItem,openItem,savaItem,closeItem,cutItem,copyItem,pasteItem;
    
    JFileChooser chooser;
    File file;

    
    public Jsb(){
        
        frame = new JFrame("记事本");
        bar = new JMenuBar();
        menuFile = new JMenu("文件");
        edit = new JMenu("编辑");
        area = new JTextArea();
        
        newItem = new JMenuItem("新建(N)");
        openItem = new JMenuItem("打开(O)");
        savaItem = new JMenuItem("另存为(A)");
        closeItem = new JMenuItem("退出(X)");
        
        cutItem = new JMenuItem("剪切(T)");
        copyItem = new JMenuItem("复制(C)");
        pasteItem = new JMenuItem("粘贴(P)");
        
        frame.getContentPane().add(new JScrollPane(area)); //文本框加滚动条
        

        
        //助记符
        newItem.setMnemonic(KeyEvent.VK_N);
        openItem.setMnemonic(KeyEvent.VK_O);
        savaItem.setMnemonic(KeyEvent.VK_A);
        closeItem.setMnemonic(KeyEvent.VK_X);
        
        cutItem.setMnemonic(KeyEvent.VK_T);
        copyItem.setMnemonic(KeyEvent.VK_C);
        pasteItem.setMnemonic(KeyEvent.VK_P);
        
        
        //快捷键
        newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK));
        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK));
        savaItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK));
        closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,java.awt.Event.CTRL_MASK));
        
        cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,java.awt.Event.CTRL_MASK));
        copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,java.awt.Event.CTRL_MASK));
        pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,java.awt.Event.CTRL_MASK));
        
        
        
        menuFile.add(newItem);
        menuFile.add(openItem);
        menuFile.add(savaItem);
        menuFile.addSeparator();
        menuFile.add(closeItem);
        
        edit.add(cutItem);
        edit.add(copyItem);
        edit.add(pasteItem);
        
        bar.add(menuFile);
        bar.add(edit);
        
        newItem.addActionListener(this);
        openItem.addActionListener(this);
        savaItem.addActionListener(this);
        closeItem.addActionListener(this);
        
        frame.setJMenuBar(bar);
        frame.setLocation(500,250);
        frame.setVisible(true);
        frame.setSize(800,600);
    }

        public void actionPerformed(ActionEvent event) {
            Object obj = event.getSource();
            if(obj instanceof JMenuItem) {
                 JMenuItem item = (JMenuItem)obj;
                 
                 if(item == newItem) {                        //新建
                     new Jsb();
                 }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 == savaItem) {                  //另存为
                     chooser = new JFileChooser();
                     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 e) {                      
                            e.printStackTrace();
                        }
                 }else if(item == closeItem) {               //关闭
                     System.exit(1);
                 }
            }

    }
        

}
        
    
        

第十三周

原文:https://www.cnblogs.com/20188382llz/p/11918441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!