notepad.java

来自「主要是对于JAVA的编程的基本语言 希望能够帮得上你。」· Java 代码 · 共 640 行 · 第 1/2 页

JAVA
640
字号
		//新建菜单项单击事件
		mniNew.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				strFileName=null;				
				setTitle("记事本"); //窗口标题栏复原
				txaNote.setText(""); //清空文本区
			}			
		});
		
		//打开菜单项单击事件
		mniOpen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				openFile(); //打开文件	
			}			
		});
		
		//保存菜单项单击事件
		mniSave.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				saveFile();  //保存文件
			}			
		});
		
		//退出菜单项单击事件
		mniExit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(isSaved==false){
					int choice=JOptionPane.showConfirmDialog(null, "文件已修改,您是否要保存文件?", "记事本", JOptionPane.YES_NO_OPTION);
					if(choice==JOptionPane.YES_OPTION){
						saveFile();  //保存文件
					}else
						System.exit(0);	//退出系统					
				}else
					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()); 
			}			
		});
		
		//黑色菜单项单击事件
		rmiBlack.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setForeground(Color.BLACK);				
			}			
		});	
		
		//红色菜单项单击事件
		rmiRed.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){
				txaNote.setForeground(Color.RED);				
			}			
		});	
		
		//蓝色菜单项单击事件
		rmiBlue.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setForeground(Color.BLUE);				
			}			
		});	
		
		//黑体菜单项单击事件
		rmiHT.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font("黑体",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));				
			}			
		});	
		
		//宋体菜单项单击事件
		rmiST.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font("宋体",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));				
			}			
		});	
		
		//隶书菜单项单击事件
		rmiLS.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font("隶书",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));				
			}			
		});	
		
		//大号菜单项单击事件
		rmiBig.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),30));				
			}			
		});	
		
		//中号菜单项单击事件
		rmiMiddle.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),25));				
			}			
		});	
		
		//小号菜单项单击事件
		rmiSmall.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),20));				
			}			
		});		
		
		//自动换行菜单项单击事件
		cmiWrap.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e){				
				if(cmiWrap.getState()){
					scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
					txaNote.setLineWrap(true);
				}else{
					scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
					txaNote.setLineWrap(false);
				}									
			}			
		});	
		
		/////////////////////////////////////////////////////////////////////
		
		//帮助菜单单击事件
		mniHelp.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				try {
					Runtime.getRuntime().exec("cmd /c start swing/notepad.chm");
				} catch (IOException e1) {					
					e1.printStackTrace();
				}							
			}			
		});	
		
		//关于菜单单击事件
		mniAbout.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				JOptionPane.showMessageDialog(null,"编写人员:泸职院电信系_华卫\n编写时间:2007年10月16日\n联系电话:3455124\n电子邮箱:maths007@163.com","记事本",JOptionPane.INFORMATION_MESSAGE);
			}						
		});
		
		////////////////////////////////////////////
		
		/*
		 * 工具栏的按钮单击事件 
		 */
		//新建按钮单击事件
		btnNew.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				strFileName=null;				
				setTitle("记事本"); //窗口标题栏复原
				txaNote.setText(""); //清空文本区
			}			
		});
		
		//打开按钮单击事件
		btnOpen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				openFile(); //打开文件	
			}			
		});
		
		//保存按钮单击事件
		btnSave.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				saveFile();  //保存文件
			}			
		});
		
		//剪切按钮单击事件
		btnCut.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()); 
			}			
		});
		
		//复制按钮单击事件
		btnCopy.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//获得选中的文本
				String selectedText=txaNote.getSelectedText();
				//由选中的文本创建StringSelection对象
				StringSelection  selection=new StringSelection(selectedText);
				//将剪贴板的当前内容设置到指定的StringSelection对象
				clipBoard.setContents(selection, null);				 
			}			
		});
		
		//粘贴按钮单击事件
		btnPaste.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());
				}
			}			
		});		
	}	
	
	//保存文件
	public void saveFile(){
		if(getTitle().length()==3){//新建文档
			int returnVal=fileChooser.showSaveDialog(this);
			if(returnVal==JFileChooser.APPROVE_OPTION){
				try {					
					strFileName=fileChooser.getSelectedFile().getAbsolutePath();
					FileWriter fw=new FileWriter(strFileName);						
					fw.write(txaNote.getText());
					//窗口标题栏显示保存文件的路径及名称
					setTitle("记事本 - "+strFileName);
					fw.close();
					isSaved=true; //保存文件标志设置为真
				} catch (IOException e1) {						
					e1.printStackTrace();
				}
			}else{
                JOptionPane.showMessageDialog(this,"您单击了取消按钮。","记事本",JOptionPane.WARNING_MESSAGE);
            }	
		}else{//打开已有文档
			try {
				FileWriter fw=new FileWriter(strFileName);						
				fw.write(txaNote.getText());				
				fw.close();
				isSaved=true; //保存文件标志设置为真
			} catch (IOException e1) {						
				e1.printStackTrace();
			}
		}		
	}		
	
	//打开文件
	public void openFile(){
		int returnVal=fileChooser.showOpenDialog(this);
        if(returnVal==JFileChooser.APPROVE_OPTION){
            strFileName=fileChooser.getSelectedFile().getAbsolutePath();                  
            try {
				BufferedReader br=new BufferedReader(new FileReader(strFileName));
				strFileContent="";
				String strNextLine; //用于存放文本文件的一行内容
				while((strNextLine=br.readLine())!=null){
					strFileContent=strFileContent+strNextLine+"\n";
				}
				//把文件内容显示在文本区中
				txaNote.setText(strFileContent);
				//窗口标题栏显示所打开的文件的路径及名称
				setTitle("记事本 - "+strFileName);						
			} catch (FileNotFoundException e1) {						
				e1.printStackTrace();
			} catch (IOException e1) {						
				e1.printStackTrace();
			}
        }else{
            JOptionPane.showMessageDialog(null,"您单击了取消按钮。","记事本",JOptionPane.WARNING_MESSAGE);
        }		
	}
}

⌨️ 快捷键说明

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