• 第十三周课程总结


    记事本
    一:实验代码

    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);
    			}
                    }
                    
                }
            }
    		
    
    

    二:实验截图



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

    单选钮:JRadioButton

    复选框:JCheckBox

    JMenuBar

    JMenu

    JMenuItem

  • 相关阅读:
    各种现代方法和技术在储集层研究中的运用
    “汇报能力”的要求和构建
    个人核心竞争力的构建
    “盐荒”子孙的悲哀
    对数据及数据库的理解
    浅谈大学综合素质培养的重要性
    我看兴趣爱好
    Access数据库连接字符串
    常用css缩略语
    中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法
  • 原文地址:https://www.cnblogs.com/tzmad/p/11913632.html
Copyright © 2020-2023  润新知