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

📄 myframe.java

📁 用java编写的一个记事本程序,具有和windows Notepad相似的功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JTextArea;
import java.awt.datatransfer.*;
import java.io.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.JOptionPane;
import java.util.*;
class MyFrame extends Frame implements ActionListener,KeyListener,MouseListener
{
    Menu fileMenu,editMenu,formatMenu,helpMenu;
  	MenuItem newFile,openFile,saveFile,saveasFile,exitFile;
  	MenuItem removeEdit,copyEdit,pasteEdit,cutEdit,deleteEdit,findEdit,replaceEdit,selectallEdit;
  	MenuItem fontFormat;
  	MenuItem aboutHelp;
  	
  	MenuItem popRemove;
	MenuItem popCopy;
	MenuItem popPaste;
	MenuItem popCut;
	MenuItem popDelete;
	MenuItem popSelectall;
	
  	MenuBar bar;
  	public static JTextArea text;
  	FileDialog filedialog_save,filedialog_saveas;
  	FileDialog filedialog_load;
  	FileReader fileReader;
  	FileWriter fileWriter;
 	BufferedReader in;
  	BufferedWriter out; 
  	Clipboard clipboard=null;
  	 int size=20;
  	static Font font;
  	ImageDialog imagedialog;
  	FontDialog fontdialog;
   static int Issave=0;
   String opendir,openname;
   Stack stack;
  	PopupMenu popupmenu;
  	
  MyFrame()
  {
 
  
  	super("新建文本文档");
  	stack=new Stack();
     text=new JTextArea(10,16);
     
     
   Image icon=Toolkit.getDefaultToolkit().getImage("d:\\1.1.jpg");
  	this.setIconImage(icon);
  	 clipboard=getToolkit().getSystemClipboard();
  	 filedialog_save=new FileDialog(this,"保存对话框",FileDialog.SAVE);
  	  filedialog_saveas=new FileDialog(this,"另存为",FileDialog.SAVE);
  	 filedialog_load=new FileDialog(this,"打开对话框",FileDialog.LOAD);
  	 filedialog_save.setVisible(false);
  	 filedialog_load.setVisible(false);
 	 imagedialog=new ImageDialog(this);
 	 fontdialog=new FontDialog(this,text);
 	 

     
  	 filedialog_save.addWindowListener(new WindowAdapter()
  	 {
  	 	public void windowClosing(WindowListener e)
  	 	{
  	 		filedialog_save.setVisible(false);
  	 	}
  	 	
  	 });
  	 filedialog_load.addWindowListener(new WindowAdapter()
  	 {
  	 	public void windowClosing(WindowListener e)
  	 	{
  	 		filedialog_load.setVisible(false);
  	 	}
  	 	
  	 });
  	 
    
     font=new Font("Batang",Font.PLAIN,size);
     
     text.setFont(font);
 	 bar=new MenuBar();
     fileMenu=new Menu("文件");
     editMenu=new Menu("编辑");
     formatMenu=new Menu("字体");
     
     helpMenu=new Menu("帮助");
     
     MenuShortcut newshort=new MenuShortcut(KeyEvent.VK_N,false);
     newFile=new MenuItem("新建",newshort);
     
     MenuShortcut openshort=new MenuShortcut(KeyEvent.VK_O,false);
     openFile=new MenuItem("打开",openshort);
     
     MenuShortcut saveshort=new MenuShortcut(KeyEvent.VK_S,false);
     saveFile=new MenuItem("保存",saveshort);
     
     MenuShortcut saveasshort=new MenuShortcut(KeyEvent.VK_X,false);
     saveasFile=new MenuItem("另存为",saveasshort);
      MenuShortcut exitshort=new MenuShortcut(KeyEvent.VK_E,false);
     exitFile=new MenuItem("退出",exitshort);
     fileMenu.add(newFile);
     fileMenu.add(openFile);
     fileMenu.add(saveFile);
     fileMenu.add(saveasFile);
     fileMenu.add(exitFile);
     
     newFile.addActionListener(this);
     openFile.addActionListener(this);
     saveFile.addActionListener(this);
     saveasFile.addActionListener(this);
     exitFile.addActionListener(this);
     
     MenuShortcut removeshort=new MenuShortcut(KeyEvent.VK_Z,false);
     removeEdit=new MenuItem("撤消",removeshort);
     
     MenuShortcut copyshort=new MenuShortcut(KeyEvent.VK_C,false);
     copyEdit=new MenuItem("复制",copyshort);
     
     MenuShortcut pasteshort=new MenuShortcut(KeyEvent.VK_V,false);
     pasteEdit=new MenuItem("粘贴",pasteshort);
     
     MenuShortcut cutshort=new MenuShortcut(KeyEvent.VK_X,false);
     cutEdit=new MenuItem("剪切",cutshort);
     
     MenuShortcut deleteshort=new MenuShortcut(KeyEvent.VK_D,false);
     deleteEdit=new MenuItem("删除",deleteshort);
     
     MenuShortcut findshort=new MenuShortcut(KeyEvent.VK_F,false);
     findEdit=new MenuItem("查找",findshort);
     
     MenuShortcut replaceshort=new MenuShortcut(KeyEvent.VK_R,false);
     replaceEdit=new MenuItem("替换",replaceshort);
     
     MenuShortcut selectallshort=new MenuShortcut(KeyEvent.VK_A,false);
     selectallEdit=new MenuItem("全选",selectallshort);
     
     fontFormat=new MenuItem("字体");
     aboutHelp=new MenuItem("关于");
     
 	 editMenu.add(removeEdit);
  	 editMenu.add(copyEdit);
  	 editMenu.add(pasteEdit);
  	 editMenu.add(cutEdit);
  	 editMenu.add(deleteEdit);
  	 editMenu.add(findEdit);
  	 editMenu.add(replaceEdit);
  	 editMenu.add(selectallEdit);
  	 
  	 removeEdit.addActionListener(this);
  	 copyEdit.addActionListener(this);
  	 pasteEdit.addActionListener(this);
  	 cutEdit.addActionListener(this);
  	 findEdit.addActionListener(this);
  	 replaceEdit.addActionListener(this);
  	 selectallEdit.addActionListener(this);
  	 
  	 formatMenu.add(fontFormat);
  	 helpMenu.add(aboutHelp);
      bar.add(fileMenu);
  	 bar.add(editMenu);
 	 bar.add(formatMenu);
  	 bar.add(helpMenu); 	
     setMenuBar(bar);
     
     fontFormat.addActionListener(this);
     aboutHelp.addActionListener(this);
     
      	 popupmenu=new PopupMenu();
     MenuShortcut popremoveshort=new MenuShortcut(KeyEvent.VK_Z,false);
     popRemove=new MenuItem("撤消",popremoveshort);
     popRemove.addActionListener(this);
     
     MenuShortcut popcopyshort=new MenuShortcut(KeyEvent.VK_C,false);
     popCopy=new MenuItem("复制",popcopyshort);
     popCopy.addActionListener(this);
     
     MenuShortcut poppasteshort=new MenuShortcut(KeyEvent.VK_V,false);
     popPaste=new MenuItem("粘贴",poppasteshort);
     popPaste.addActionListener(this);
     
     MenuShortcut popcutshort=new MenuShortcut(KeyEvent.VK_X,false);
     popCut=new MenuItem("剪切",popcutshort);
     popCut.addActionListener(this);
     
     MenuShortcut popdeleteshort=new MenuShortcut(KeyEvent.VK_D,false);
     popDelete=new MenuItem("删除",popdeleteshort);
	 popDelete.addActionListener(this);
	 
	 MenuShortcut popselectallshort=new MenuShortcut(KeyEvent.VK_A,false);
     popSelectall=new MenuItem("全选",popselectallshort);
     popSelectall.addActionListener(this);
	 
	 popupmenu.add(popRemove);
	 popupmenu.add(popCopy);
	 popupmenu.add(popPaste);
	 popupmenu.add(popCut);
	 popupmenu.add(popDelete);
     text.addMouseListener(this);
     add(popupmenu);
  
 	 add(text,BorderLayout.CENTER);
 	 
  	 
  	  this.pack();
  	 this.setBounds(150,150,700,500);
  	 this.setVisible(true);
  	 this.validate();
  	
 
  	 addWindowListener(new WindowAdapter()
  	 {
  	 	public void windowClosing(WindowEvent e)
  	 	{
  	 		Isclose();
  	 	
  	 	}
  	 	
  	 });

  }
  
  public void Isclose()
  {
  	  if(text.getText().equals(new String("")))
  	{
  		System.exit(0);
  	}
  		if(Issave==1 && text.getText()!=null)
  		{
  			System.exit(0);
  		}

  		 if(Issave==0&&  text.getText()!=null)
  		{
  			int n=JOptionPane.showConfirmDialog(this,"文件内容已改变,需要保存文件吗?","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
  			if(n==JOptionPane.YES_OPTION)
  			{
  				  		filedialog_save.setVisible(true);
  				if(filedialog_save.getFile()!=null)
  		   {
  			String name;
  			try
  			{
  				fileWriter=new FileWriter(new File(filedialog_save.getDirectory(),filedialog_save.getFile()));
  				out=new BufferedWriter(fileWriter);
  				name=text.getText();
  				out.write(name,0,name.length());
  				out.flush();
  				out.close();
  				fileWriter.close();
  				Issave=1;
  			}
  			catch(IOException e2)
  			{
  				
  			}
}
  		     }
  		    if(n==JOptionPane.NO_OPTION)
  		   {
  		   	System.exit(0);
  	        
  		   }
  		     else
  		    {
  			filedialog_save.setVisible(false);
  		    }
  		}
  	
  	
  	
  	
  }
  public void actionPerformed(ActionEvent e)
  {
  	if(e.getSource()==newFile)
  	{
  		text.setText("");
  		this.setTitle("新建文本文档");
  	}
  	 	
  	if(e.getSource()==openFile)
  	{
  		filedialog_load.setVisible(true);
  		if(filedialog_load.getFile()!=null)
  		{
  			String name;
  			try
  			{
  				openname=filedialog_load.getFile();
  				opendir=filedialog_load.getDirectory();
  				text.setText("");
  				this.setTitle(filedialog_load.getFile()+" Notepad");
  	            fileReader=new FileReader(new File(filedialog_load.getDirectory(),filedialog_load.getFile()));				
  				in=new BufferedReader(fileReader);
  				while((name=in.readLine())!=null)
  				{
  					text.append(name+'\n');
  				}
  				in.close();
  				fileReader.close();
  			}
  			catch(IOException e1){
  				
  			}
  		}

  	}
  	
  	if(e.getSource()==saveFile)
  	{
  		String title=new String("新建文本文档");
  	//	System.out.println(title);
  	//	System.out.println(this.getTitle());
  		if(this.getTitle().equals(title))
  		{  

  			
  	      filedialog_save.setVisible(true);

⌨️ 快捷键说明

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