⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mynotepad.java

📁 本人总结记事本的多种功能为一体,自己做了一个很全面的与大家分亨
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import java.awt.event.*;
import javax.swing.border.BevelBorder;
import java.io.*;

public class MyNotePad extends JFrame implements ActionListener{
     JPopupMenu popMenu  = new JPopupMenu();
     JMenuBar mb=new JMenuBar();
     
     JMenu file=new JMenu("文件(F)");
       
       JMenuItem minew=new JMenuItem("新建");
       
       JMenuItem miopen=new JMenuItem("打开");
       
       JMenuItem misave=new JMenuItem("保存");
       
       JMenuItem misaveas=new JMenuItem("另存为");
       
       JMenuItem miexit=new JMenuItem("退出");
     
       JMenuItem minew1=new JMenuItem("新建");
       
       JMenuItem miopen1=new JMenuItem("打开");
       
       JMenuItem misave1=new JMenuItem("保存");
       
       JMenuItem misaveas1=new JMenuItem("另存为");
       
       JMenuItem miexit1=new JMenuItem("退出");
     JMenu edit=new JMenu("编辑(E)");
       
       JMenuItem micut=new JMenuItem("剪切(x)");
       
       JMenuItem micopy=new JMenuItem("复制(c)");
       
       JMenuItem mipaste=new JMenuItem("粘贴(v)");
     
     JMenu format=new JMenu("格式(O)");
       
       JMenuItem mifont=new JMenuItem("字体");
       
       JMenuItem mileft=new JMenuItem("左对齐");
       
       JMenuItem miright=new JMenuItem("右对齐");
       
       JMenuItem micenter=new JMenuItem("居中对齐");
       
       JMenuItem mibold=new JMenuItem("加粗");
       
       JMenuItem mii=new JMenuItem("斜体");
       
       JMenuItem mino=new JMenuItem("无特殊样式");
      
     JMenu help=new JMenu("帮助(H)");
       
       JMenuItem mia=new JMenuItem("About");
       
     JToolBar tb=new JToolBar();
        
       JButton bnew=new JButton(new ImageIcon("imgs/New.png"));
        
       JButton bopen=new JButton(new ImageIcon("imgs/Open.png"));
        
       JButton bsave=new JButton(new ImageIcon("imgs/Save.png"));
        
       JButton bcut=new JButton(new ImageIcon("imgs/Cut.png"));
        
       JButton bcopy=new JButton(new ImageIcon("imgs/Copy.png"));
        
       JButton bpaste=new JButton(new ImageIcon("imgs/Paste.png"));
        
       JButton bexit=new JButton(new ImageIcon("imgs/Exit.png"));
     JFileChooser jfc=new JFileChooser();   
     int result=0;
      JTextPane tp=new JTextPane();

     public MyNotePad()
   {
   	super("我的记事本");
   
   	Container c=this.getContentPane();
   		mb.add(file);
   	buildMenufile();
   
   	
   	buildMenuedit();
   	mb.add(edit);
   	
   	buildMenuformat();
   	mb.add(format);
   	
   
   	buildHelp();
  	mb.add(help);
   	
   	this.setJMenuBar(mb);
   
   	buildToolBar();
   	c.add(tb,BorderLayout.NORTH);
     
    JScrollPane sp = new JScrollPane(tp);

	tp.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));

	tp.setFont(new Font("Arial", Font.PLAIN, 16));
	c.add(sp);
	popMenu.add(miopen);
   	popMenu.add(misave);
   	popMenu.add(misaveas);
   	popMenu.add(miexit);
   	minew.addActionListener(this);
   	miopen.addActionListener(this);
   	misave.addActionListener(this);
   	misaveas.addActionListener(this);
   		misaveas1.addActionListener(this);
   		minew1.addActionListener(this);
   	miopen1.addActionListener(this);
   	misave1.addActionListener(this);
	tp.addMouseListener(new MouseAdapter(){
	public void mouseClicked(MouseEvent e) {
            	if(e.getButton()==MouseEvent.BUTTON3){
            		popMenu.show(tp,e.getX(),e.getY());
            	}
            }
	});
	
	this.setBounds(300,300,600,450);
   	
   	this.setVisible(true);
   	
   	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
    public void actionPerformed(ActionEvent e){
    	File f=null;
    	BufferedWriter writer=null;
    if(e.getSource()==miopen||e.getSource()==miopen1){
    
    	result=jfc.showOpenDialog(this);
    	tp.setText("");
    	if(result==jfc.APPROVE_OPTION){
    		 f=jfc.getSelectedFile();
    		try{
    				System.out.println(f.getPath());
    			tp.setPage("file:"+f.getPath());    		
    		}catch(IOException ee){
    		}    		
    		}
    	}
    	
    	if(e.getSource()==misave||e.getSource()==misave1){
    		result=jfc.showSaveDialog(this);
    		if(result==JFileChooser.APPROVE_OPTION){
    			f=jfc.getSelectedFile();
    			try{
    			writer=new BufferedWriter(new FileWriter(f));
    		writer.write(tp.getText());	
    			}catch(IOException ee){
    				ee.printStackTrace();
    			}finally{
    				try{
    					if(writer!=null)
    					writer.close();
    				}catch(Exception pe){
    				}
    				
    			}
    	
    		}
    		
    	}
    	if(e.getSource()==misaveas||e.getSource()==misaveas1){
    		result=jfc.showSaveDialog(this);
    		if(result==JFileChooser.APPROVE_OPTION){
    			f=jfc.getSelectedFile();
    			try{
    			writer=new BufferedWriter(new FileWriter(f));
    		writer.write(tp.getText());	
    			}catch(IOException ee){
    				ee.printStackTrace();
    			}finally{
    				try{
    					if(writer!=null)
    					writer.close();
    				}catch(Exception pe){
    				}
    				
    			}
    	
    		}
    		
    	}
    	if(e.getSource()==minew||e.getSource()==minew1){
    	ExitDialog1 ed=new ExitDialog1(MyNotePad.this);
   	           ed.setVisible(true);
   	            if(ed.getExit()){
   	            	result=jfc.showSaveDialog(this);
    		if(result==JFileChooser.APPROVE_OPTION){
    			f=jfc.getSelectedFile();
    			try{
    			writer=new BufferedWriter(new FileWriter(f));
    		writer.write(tp.getText());	
    			}catch(IOException ee){
    				ee.printStackTrace();
    			}finally{
    				try{
    					if(writer!=null)
    					writer.close();
    				}catch(Exception pe){
    				}
    				
    			}
    	
    		}	
   	            
   	            }
   	              
   	            else
   	                return;	
    		
    	}	
    }
   public void buildMenufile()
   {
      file.setMnemonic('F');
      
      file.add(minew1);
       
      
      file.add(miopen1);
        
      file.add(misave1);
        
      
      file.add(misaveas1);
        
        
      file.add(miexit1);
      miexit.addActionListener(new ActionListener(){
   	       public void actionPerformed(ActionEvent e){
   	           ExitDialog ed=new ExitDialog(MyNotePad.this);
   	           ed.setVisible(true);
   	            if(ed.getExit())
   	               System.exit(0);
   	            else
   	                return;
   	                
   	                }});   
       }
   
    public void buildMenuedit()
    {
   	 edit.setMnemonic('E');
   	 
   	 micut.setMnemonic('x' );
   	 
   	 micopy.setMnemonic('c'); 
     
     mipaste.setMnemonic('v');
   	
   	 edit.add(micut);
   	 micut.addActionListener(new Cut());
   	 
   	 edit.add(micopy);
     micopy.addActionListener(new Copy());
   	   	  
   	 edit.add(mipaste);
     mipaste.addActionListener(new Paste());
   	   	 
   }
   
   public void buildMenuformat()
   {   
   	  format.setMnemonic('O');
   	 
      format.add(mifont);
      FontHandle fd=new FontHandle(this);
   	  mifont.addActionListener(fd);
   	  
   	  format.addSeparator();
   	 
   	  format.add(mileft);
   	  mileft.addActionListener(new LeftAttribute());
   	  
   	  format.add(micenter);
   	  micenter.addActionListener(new CenterAttribute());
   	  
   	  format.add(miright);
   	  miright.addActionListener(new RightAttribute());
   	  
   	  format.addSeparator();
   	  
   	  format.add(mibold);
   	  mibold.addActionListener(new SetBold());
   	    	
   	  format.add(mii);
   	  mii.addActionListener(new SetItalic());
   	    	
   	  format.add(mino);
   	  mino.addActionListener(new SetPlain());
   	    	
   }
   
   public void buildHelp()
   {
   	  
   	  help.setMnemonic('H');
     
      help.add(mia);
      mia.addActionListener(new HelpDialog(this));
        
   }
   
   public void buildToolBar()
   {
   	
   	bnew.setToolTipText("新建");
   	bopen.setToolTipText("打开");
   	bsave.setToolTipText("保存");
   	bcut.setToolTipText("剪切");
   	bcopy.setToolTipText("复制");
   	bpaste.setToolTipText("粘贴");
   	bexit.setToolTipText("退出");
   	
   	tb.add(bnew);
   	  
   	tb.add(bopen);
   	  
   	tb.add(bsave);
   	 
   	tb.addSeparator();
   	
   	tb.add(bcut);
   	bcut.addActionListener(new Cut());
   	
   	tb.add(bcopy);
   	bcopy.addActionListener(new Copy());
   	
   	tb.add(bpaste);
   	bpaste.addActionListener(new Paste());
   	
   	tb.addSeparator();
   	
   	tb.add(bexit);   
   	bexit.addActionListener(new ActionListener(){
   	   public void actionPerformed(ActionEvent e){
   	          ExitDialog ed=new ExitDialog(MyNotePad.this);
   	          ed.setVisible(true);
   	           if(ed.getExit())
   	              System.exit(0);
   	           else
   	              return;}});
   	
   	tb.setFloatable(false);
   } 
  
  
  
 class LeftAttribute implements ActionListener{
  	
  	public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setAlignment(attr, StyleConstants.ALIGN_LEFT);
         
         tp.setParagraphAttributes(attr, false);
     } 
  }  
  
 class CenterAttribute implements ActionListener{
  	
  	public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setAlignment(attr,StyleConstants.ALIGN_CENTER);
         
         tp.setParagraphAttributes(attr,false);
    
    }  
  }
  
 class RightAttribute implements ActionListener{
  	
  	public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setAlignment(attr,StyleConstants.ALIGN_RIGHT);
         
         tp.setParagraphAttributes(attr,false);
      
    }  
  }
  
 class SetBold implements ActionListener{
  	 
  	 public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setBold(attr,true);
         
         tp.setCharacterAttributes(attr, false);
    
     }  
  }
  
 class SetItalic implements ActionListener{
  	
  	public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setItalic(attr,true);
         
         tp.setCharacterAttributes(attr,false);
     
    }
  }
  
 class SetPlain implements ActionListener{
  	
  	public void actionPerformed(ActionEvent e){
  		
  		SimpleAttributeSet attr=new SimpleAttributeSet();
  		
  		StyleConstants.setBold(attr,false);
  		
  		StyleConstants.setItalic(attr,false);
  		
        tp.setCharacterAttributes(attr,false);
    
    }
  }
 
 class Cut implements ActionListener{
  
     public void actionPerformed(ActionEvent e){
   	  	 	  
   	  	 	  tp.cut();
   	 }
  }
 
 class Paste implements ActionListener{
  	 
  	 public void actionPerformed(ActionEvent e ){
   	   	  	   
   	   	  	   tp.paste(); 
   	 } 
  }
  
 class Copy implements ActionListener{
  	 
  	 public void actionPerformed(ActionEvent e){
   	   	       
   	   	       tp.copy(); 
     }
  }
 
 class HelpDialog extends JDialog implements ActionListener
 {
	 MyNotePad nt;
	 public HelpDialog(MyNotePad nt)
	 {
	 	super(nt,"关于我的记事本",true);
	 	
	 	Container c=this.getContentPane();
	 	
	 	JLabel jl=new JLabel("我的记事本version 1.0",JLabel.CENTER);
	 	
	 	c.add(jl,BorderLayout.CENTER);
	 	
	 	this.setBounds(500,300,300,150);
	 	
	 	this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
	 	
	 }
    
    public void actionPerformed(ActionEvent e)
    {
    	
    	new HelpDialog(nt);
    
        this.setVisible(true);
    }	 	
  }   
 
  
  public static void main(String args[])
  {  

     
     new MyNotePad();
  }
 }

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -