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

📄 notepad.java

📁 主要是对于JAVA的编程的基本语言 希望能够帮得上你。
💻 JAVA
字号:
package awt;

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;

/**
 * Title: Notepad类<br>
 * Description: 简易记事本,能创建、打开和保存文本文件,具有剪切、复制和粘贴功能,能设置字体颜色以及字号<br>
 * Copyright:(c)2007 www.luzhou.net<br>
 * Company: 泸州职业技术学院电信系
 * @author 华卫
 * @version 1.00
 */

public class Notepad{
	
	/**
	 * 变量及常量定义部分:框架、文本区、标签、菜单、对话框、文件对话框
	 * 文件名、文件内容、系统剪贴板、屏幕宽度和高度 
	 */
	
	//定义主窗口及组件
	Frame frmNote=new Frame("记事本");
	TextArea txaNote=new TextArea("",20,60,TextArea.SCROLLBARS_VERTICAL_ONLY);
	Label lblStatusbar=new Label("【JAVA语言程序设计】教学示例程序_授课教师:华卫");
	
	//定义菜单栏
	MenuBar mnbNote=new MenuBar(); 
	
	Menu mnuFile=new Menu("文件");
	MenuItem mniNew=new MenuItem("新建");
	MenuItem mniOpen=new MenuItem("打开");
	MenuItem mniSave=new MenuItem("保存");
	MenuItem mniExit=new MenuItem("退出");
	
	Menu mnuEdit=new Menu("编辑");
	MenuItem mniCut=new MenuItem("剪切");
	MenuItem mniCopy=new MenuItem("复制");
	MenuItem mniPaste=new MenuItem("粘贴");
	MenuItem mniDelete=new MenuItem("删除");
	
	Menu mnuSet=new Menu("设置");
	Menu mnuForeColor=new Menu("前景色");	
	CheckboxMenuItem cmiBlack=new CheckboxMenuItem("黑色",true);
	CheckboxMenuItem cmiRed=new CheckboxMenuItem("红色",false);
	CheckboxMenuItem cmiBlue=new CheckboxMenuItem("蓝色",false);
	Menu mnuFontSize=new Menu("字号");	
	CheckboxMenuItem cmiBig=new CheckboxMenuItem("大号",true);
	CheckboxMenuItem cmiMiddle=new CheckboxMenuItem("中号",false);
	CheckboxMenuItem cmiSmall=new CheckboxMenuItem("小号",false);	
	
	Menu mnuHelp=new Menu("帮助");
	MenuItem mniHelp=new MenuItem("帮助");
	MenuItem mniAbout=new MenuItem("关于");
	
	//定义文件对话框
	FileDialog fDlg=new FileDialog(frmNote,"");
	
	//定义对话框及组件
	Dialog dlgMessage=new Dialog(frmNote,"",true);
	Panel panUpper=new Panel();
	Panel panLower=new Panel();
	Label lblMessage=new Label("");	
	Button btnOK=new Button("确定");
	
	//定义文件名
	String strFileName;
	
	//定义存放文件内容的字符串
	String strFileContent;	
	
	//定义系统剪贴板
	Clipboard clipBoard=Toolkit.getDefaultToolkit().getSystemClipboard();	

	public static void main(String[] args) {		
		new Notepad();
	}	
	
	public Notepad(){			
		
		/**
		 * 设计用户界面:设置各组件的属性
		 */
		
		//设置窗口属性
		frmNote.setSize(800,600);		
		frmNote.setLocationRelativeTo(null); //让窗口在屏幕居中
		
		//添加文本区并设置其属性
		frmNote.add(txaNote);				
		txaNote.setFont(new Font("黑体",Font.PLAIN,30));		   
		
		//添加标签并设置其属性
		frmNote.add(lblStatusbar,"South");
		lblStatusbar.setBackground(new Color(212, 208, 200));		
		
		//设置菜单栏
		frmNote.setMenuBar(mnbNote);		
		//添加文件菜单
		mnbNote.add(mnuFile); 
		mnuFile.add(mniNew);
		mnuFile.add(mniOpen);
		mnuFile.add(mniSave);
		mnuFile.addSeparator();
		mnuFile.add(mniExit);
		//添加编辑菜单
		mnbNote.add(mnuEdit);
		mnuEdit.add(mniCut);
		mnuEdit.add(mniCopy);
		mnuEdit.add(mniPaste);
		mnuEdit.addSeparator();
		mnuEdit.add(mniDelete);
		//添加设置菜单
		mnbNote.add(mnuSet);
		mnuSet.add(mnuForeColor);
		mnuForeColor.add(cmiBlack);
		mnuForeColor.add(cmiRed);
		mnuForeColor.add(cmiBlue);
		mnuSet.add(mnuFontSize);
		mnuFontSize.add(cmiBig);
		mnuFontSize.add(cmiMiddle);
		mnuFontSize.add(cmiSmall);		
		
		//添加帮助菜单
		mnbNote.add(mnuHelp);
		mnuHelp.add(mniHelp);
		mnuHelp.add(mniAbout);
		
		//设置窗口可见
		frmNote.setVisible(true);	
		
		//设置对话框		
		dlgMessage.setSize(200, 100);
		dlgMessage.setTitle("记事本");
		dlgMessage.setLocation(frmNote.getX()+(frmNote.getWidth()-dlgMessage.getWidth())/2, frmNote.getY()+(frmNote.getHeight()-dlgMessage.getHeight())/2);		
		dlgMessage.add(panUpper,"Center");
		dlgMessage.add(panLower,"South");
		panUpper.add(lblMessage);
		panLower.add(btnOK);	
		
		/**
		 * 给组件注册监听器,并编写相应的事件处理程序
		 */
		
		//窗口关闭事件		
		frmNote.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		
		//文本区中的鼠标运动事件
		txaNote.addMouseMotionListener(new MouseMotionAdapter(){
			public void mouseMoved(MouseEvent e) {
				//判断文本区中是否选中了文本,以此决定“剪切”、“复制”和“删除”菜单项是否可用
				if(txaNote.getSelectedText().equals("")){
					mniCut.setEnabled(false);
					mniCopy.setEnabled(false);
					mniDelete.setEnabled(false);					
				}else{
					mniCut.setEnabled(true);
					mniCopy.setEnabled(true);
					mniDelete.setEnabled(true);
				}				
				//判断剪贴板里是否有内容,以此决定“粘贴”菜单项是否可用				
				Transferable contents=clipBoard.getContents(this); //从剪贴板获取可传输数据对象
				if(contents==null)
					mniPaste.setEnabled(false);
				else
					mniPaste.setEnabled(true);
			}			
		});		
		
		//新建菜单项单击事件
		mniNew.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				strFileName=null;				
				frmNote.setTitle("记事本"); //窗口标题栏复原
				txaNote.setText(""); //清空文本区
			}			
		});
		
		//打开菜单项单击事件
		mniOpen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				fDlg.setMode(FileDialog.LOAD); //设置为打开对话框
				fDlg.setTitle("打开文件");
				fDlg.setVisible(true);
				strFileName=fDlg.getDirectory()+fDlg.getFile();
				if(fDlg.getFile()==null){					
					lblMessage.setText("您没有选择任何文件!");									
					dlgMessage.addWindowListener(new WindowAdapter(){
						public void windowClosing(WindowEvent e){								
							dlgMessage.dispose();						
						}
					});		
					btnOK.addActionListener(new ActionListener(){
						public void actionPerformed(ActionEvent e) {
							dlgMessage.dispose();															
						}						
					});
					dlgMessage.setVisible(true);
				}else{					
					try {
						BufferedReader br=new BufferedReader(new FileReader(strFileName));
						strFileContent="";
						String strNextLine; //用于存放文本文件的一行内容
						while((strNextLine=br.readLine())!=null){
							strFileContent=strFileContent+strNextLine+"\n";
						}
						//把文件内容显示在文本区中
						txaNote.setText(strFileContent);
						//窗口标题栏显示所打开的文件的路径及名称
						frmNote.setTitle("记事本 - "+strFileName);						
					} catch (FileNotFoundException e1) {						
						e1.printStackTrace();
					} catch (IOException e1) {						
						e1.printStackTrace();
					}					
				}
			}			
		});
		
		//保存菜单项单击事件
		mniSave.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(frmNote.getTitle().length()==3){//新建文档
					fDlg.setMode(FileDialog.SAVE); //设置为另存对话框
					fDlg.setTitle("保存文件");
					fDlg.setVisible(true);
					strFileName=fDlg.getDirectory()+fDlg.getFile();
					if(fDlg.getFile()==null){//没有设置文件名
						lblMessage.setText("您没有设置文件名!");									
						dlgMessage.addWindowListener(new WindowAdapter(){
							public void windowClosing(WindowEvent e){								
								dlgMessage.dispose();						
							}
						});		
						btnOK.addActionListener(new ActionListener(){
							public void actionPerformed(ActionEvent e) {
								dlgMessage.dispose();															
							}						
						});
						dlgMessage.setVisible(true);
					}else{
						try {							
							FileWriter fw=new FileWriter(strFileName);						
							fw.write(txaNote.getText());
							//窗口标题栏显示保存文件的路径及名称
							frmNote.setTitle("记事本 - "+strFileName);
							fw.close();
						} catch (IOException e1) {						
							e1.printStackTrace();
						}
					}
				}else{//打开已有文档
					try {
						FileWriter fw=new FileWriter(strFileName);						
						fw.write(txaNote.getText());				
						fw.close();
					} catch (IOException e1) {						
						e1.printStackTrace();
					}
				}
			}			
		});
		
		//退出菜单项单击事件
		mniExit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				System.exit(0);				
			}			
		});	
		
		//剪切菜单项单击事件
		mniCut.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//获得选中的文本
				String selectedText=txaNote.getSelectedText();
				//由选中的文本创建StringSelection对象
				StringSelection  selection=new StringSelection(selectedText);
				//将剪贴板的当前内容设置到指定的StringSelection对象
				clipBoard.setContents(selection, null);
				//把选中的文本替换为空串
				txaNote.replaceRange("",txaNote.getSelectionStart(),txaNote.getSelectionEnd()); 
			}			
		});
		
		//复制菜单项单击事件
		mniCopy.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//获得选中的文本
				String selectedText=txaNote.getSelectedText();
				//由选中的文本创建StringSelection对象
				StringSelection  selection=new StringSelection(selectedText);
				//将剪贴板的当前内容设置到指定的StringSelection对象
				clipBoard.setContents(selection, null);				 
			}			
		});
		
		//粘贴菜单项单击事件
		mniPaste.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//从剪贴板获取可传输数据对象
				Transferable contents=clipBoard.getContents(this);
				if(contents!=null){
					String strText=null;
					try{
						//从剪贴板可传输对象中获取可传输数据,并强制转化成字符串
						strText=(String)contents.getTransferData(DataFlavor.stringFlavor);
				    }catch(Exception exception){
				    	System.out.println(exception.getStackTrace());
				    }
				    //用剪贴板的数据替换文本区中选定的内容
				    txaNote.replaceRange(strText,txaNote.getSelectionStart(),txaNote.getSelectionEnd());
				}
			}			
		});
		
		//删除菜单项单击事件
		mniDelete.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//把选中的文本替换为空串
				txaNote.replaceRange("",txaNote.getSelectionStart(),txaNote.getSelectionEnd()); 
			}			
		});
		
		//黑色菜单项单击事件
		cmiBlack.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiBlack.getState()){
					cmiRed.setState(false);
					cmiBlue.setState(false);
					txaNote.setForeground(Color.BLACK);
				}
			}			
		});	
		
		//红色菜单项单击事件
		cmiRed.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiRed.getState()){
					cmiBlack.setState(false);
					cmiBlue.setState(false);
					txaNote.setForeground(Color.RED);
				}
			}			
		});	
		
		//蓝色菜单项单击事件
		cmiBlue.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiBlue.getState()){
					cmiRed.setState(false);
					cmiBlack.setState(false);
					txaNote.setForeground(Color.BLUE);
				}
			}			
		});	
		
		//大号菜单项单击事件
		cmiBig.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiBig.getState()){
					cmiMiddle.setState(false);
					cmiSmall.setState(false);
					txaNote.setFont(new Font("黑体",Font.PLAIN,30));
				}
			}			
		});	
		
		//中号菜单项单击事件
		cmiMiddle.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiMiddle.getState()){
					cmiBig.setState(false);
					cmiSmall.setState(false);
					txaNote.setFont(new Font("黑体",Font.PLAIN,25));
				}
			}			
		});	
		
		//小号菜单项单击事件
		cmiSmall.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				if(cmiSmall.getState()){
					cmiBig.setState(false);
					cmiMiddle.setState(false);
					txaNote.setFont(new Font("黑体",Font.PLAIN,20));
				}
			}			
		});		
		
		//帮助菜单单击事件
		mniHelp.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				try {
					Runtime.getRuntime().exec("cmd /c start awt/notepad.chm");
				} catch (IOException e1) {					
					e1.printStackTrace();
				}							
			}			
		});	
		
		//关于菜单单击事件
		mniAbout.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				lblMessage.setText("泸职院电信系_华卫_2007年编写");									
				dlgMessage.addWindowListener(new WindowAdapter(){
					public void windowClosing(WindowEvent e){								
						dlgMessage.dispose();						
					}
				});		
				btnOK.addActionListener(new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						dlgMessage.dispose();															
					}						
				});
				dlgMessage.setVisible(true);
			}			
		});
	}	
}

⌨️ 快捷键说明

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