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

📄 11232044292.java

📁 java记事本
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		textArea.setSelectionColor(Color.BLACK);
		
		//设置窗体属性
		JPanel panel = new JPanel();
		panel.setLayout(new BorderLayout());
		panel.add("North",mBar);
		panel.add("Center",toolbar);
		getContentPane().add("North",panel);
		getContentPane().add(jsp);
		add(statubar,"South");    //添加状态栏  
		setSize(600,400);
		setExtendedState(JFrame.MAXIMIZED_BOTH);//窗口大小设置
		setVisible(true);    //显示窗口
		this.addWindowListener( new WindowAdapter(){
        public void windowClosing(WindowEvent e){
               exit.doClick();	
        }});  
        this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
 	}
 	
 	//添加菜单函数 	
 	public static JMenu makeMenu(Object parent,Object [] items,Object target){
 		JMenu m = null;
 		if(parent instanceof JMenu)
 		    m = (JMenu) parent;
 		else if(parent instanceof String)
 		    m = new JMenu((String) parent);
 		else return null;
 		for(int i = 0;i < items.length;i++){
 			if(items[i] == null)
 			   m.addSeparator();
 			else
 			   m.add(makeMenuItem(items[i],target));
 		}
 		return m;
 	}
 	
 	//添加子菜单函数 	
 	public static JMenuItem makeMenuItem(Object item,Object target){
 		JMenuItem r = null;
 		if(item instanceof String)
 		   r = new JMenuItem((String) item);
 		else if(item instanceof JMenuItem)
 		   r = (JMenuItem) item;
 		else return null;
 		if(target instanceof ActionListener)
 		   r.addActionListener((ActionListener) target);
 		return r;
 	}
 	
 	//添加弹出菜单函数
 	/*
 	public static JPopupMenu makePopupMenu(Object [] items, Object target){
 		JPopupMenu m = new JPopupMenu();
 		
 		for(int i = 0; i < items.length; i++){
 			if(items[i] == null)
 			   m.addSeparator();
 			else
 			   m.add(makeMenuItem(items[i],target));
 		}
 		return m;
 	}*/
  
    //新建文件
    void newFile(){
    	if(file == null && !textArea.getText().equals("")){
			int i = JOptionPane.showConfirmDialog(this,"文件---无标题 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
	   	    if(i == 0) { ////确定
			  saveAsFile(); 
			  textArea.setText("");
	   	    }
	   	    else if(i == 1)  textArea.setText("");////取消
	   	    checksave = false;
	   	    file = null;
		} 
		if(file != null && !checksave){
			int i = JOptionPane.showConfirmDialog(this,"文件 " + file.getPath() + " 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
		    if(i == 0) { 
			  saveFile(); 
			  textArea.setText("");
			  file = null;
	   	      setTitle("新建文本文档----记事本");
	   	    }
	   	    else if(i == 1) {
	   	    	 textArea.setText("");
	   	         file = null;
	   	         setTitle("新建文本文档----记事本");
	   	    }
		}   
		Get_XY();	
    }
 	
 	//打开事件 	
 	void openFile(){
 		if(textArea.getText().equals("")){ openFile_1();}
 		else if(!checksave && !textArea.getText().equals("")){
			int i = JOptionPane.showConfirmDialog(this,"记事本 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
	   	    if(i == 0) { saveAsFile(); openFile_1(); }
		    else if(i == 1){ openFile_1(); checksave = false;}
	    }
	}
	    
	void openFile_1(){
 	    final JFileChooser fc = new JFileChooser();
 		int returnVal = fc.showOpenDialog(this);
 		if(returnVal == JFileChooser.CANCEL_OPTION)//如用户点击取消,则返回
			 return;
 		if(returnVal == JFileChooser.APPROVE_OPTION){
 	        file = fc.getSelectedFile();
 			setTitle(file.getName() + "----记事本");
 			textArea.append("Opening:" + file.getName() + "." + newline);
 			textArea.setText("");
 		    if(file.exists())
 			{
   				try
   				{
   				  	BufferedReader in = new BufferedReader(new FileReader(file));
   				    String line;
   				    while ((line = in.readLine()) != null)
   						textArea.append(line + newline);
   					in.close();
   					textArea.setCaretPosition(0);
   				 }
   				 catch(IOException ioe)
   				 {
   					 System.err.println(ioe);
   				 }
   			 }
   			 else
   			 {
   			     JOptionPane.showMessageDialog(null,"文件不存在","错误",0);
   			 }	
 		}
 		Get_XY();
 	 }
 	
 	//保存事件
 	void saveFile(){
 		if( file != null ){
 		    FileOutputStream fos = null;
     		try
     		{
     			fos = new FileOutputStream(file);
     		}
     		catch(FileNotFoundException fe)
     		{
     			System.err.println("文件未找到");
     			return;
     		}
     		String content=textArea.getText();
     		try
     		{
     			fos.write(content.getBytes());
     		}
     		catch(IOException ioe)
   			{
   				System.err.println(ioe);
   			}
   			finally
   			{
   				try
   				{
   					if (fos != null)
   						fos.close();
   				}
   				catch(IOException ioe2){}
   			}
   		}
   		else{
   			saveAsFile();   		
   		}
   		Get_XY();
 	}
 	
 	//文件另存为事件 	
 	void saveAsFile(){	
 		JFileChooser fc = new JFileChooser();
    	int returnVal = fc.showSaveDialog(this);
    	file = fc.getSelectedFile();
    	if(returnVal == JFileChooser.APPROVE_OPTION){
     		setTitle("新建文本文档----记事本");
     	}
     	FileOutputStream fos = null;
     	File file1 = new File(fc.getCurrentDirectory(),file.getName());
        if(file1.exists()){
        	int i = JOptionPane.showConfirmDialog(this,"文件 " + file.getPath() + " 已存在\n" + "要替换它吗?","另存为",JOptionPane.YES_NO_OPTION);
        	if(i == 1 ){
        		checksave = true;}
        }
     	if (file != null && !checksave){
     		try
     		{
     			fos = new FileOutputStream(file);
     		}
     		catch(FileNotFoundException fe)
     		{
     			System.err.println("文件未找到");
     			return;
     		}
     		String content = textArea.getText();
     		try
     		{
     			fos.write(content.getBytes());
     		}
     		catch(IOException ioe)
   			{
   				System.err.println(ioe);
   			}
   			finally
   			{
   				try
   				{
   					if (fos != null)
   						fos.close();
   				}
   				catch(IOException ioe2){}
   			}
   		}
   		file = file1;
 	}
 	
 	//退出事件 	
	void exit()
	{
		if(file == null && textArea.getText().equals("")) System.exit(0);
		if (! checksave && !textArea.getText().equals("")){
			int i = JOptionPane.showConfirmDialog(null,"文件尚未保存\n想保存文件吗?","记事本",1,2);
		    if (i == 0){ saveAsFile(); System.exit(0); }
		    else if (i == 1) System.exit(0);
		}
		if(file != null){
			int i = JOptionPane.showConfirmDialog(null,"文件 " + file.getName() + "已经改变\n想保存当前已修改文件吗?","记事本",1,2);
			if(i == 0){ saveFile(); System.exit(0);}
		    else if(i == 1) System.exit(0);
		}
	}
	
	//"关于"记事本	
	void about()
	{
		JOptionPane.showMessageDialog(null,"记事本 by pawpaw","关于  记事本",3,new ImageIcon("text_editor.GIF"));
	}
	
	//状态栏事件 ---- 显示光标所在位置
	void Get_XY(){
		int i = textArea.getSelectionStart();
		int p = 1,q = 1;
		for(int j = 0;j < i;j ++)
		    if(textArea.getText().charAt(j) == '\n') {
		     	   p ++;
		     	   q = 1;
		    }
		    else q ++;
		    if(status_bar.isSelected()){
		    	statubar.setVisible(true);
			    if(file != null)
			         statubar.setText("记事本------" + file.getPath() + "-------------------------------------------------------------------------" + "Ln "+ p +",Col " + q);
			    else
			         statubar.setText("记事本------未命名文件" + "-------------------------------------------------------------------------" + "Ln " + p +",Col " + q);
	        }
	        else statubar.setVisible(false);
	}
	
	//提示查找不到的方法notfindmethod
	public void notfindmethod() 
    {
        if(!textArea.getSelectedText().equals(findtxt.getText())) 
        { 
           textArea.setCaretPosition(0); //光标返回文件头部
           JOptionPane.showMessageDialog(null,"查找不到对应的字符!","查找错误",JOptionPane.ERROR_MESSAGE);
           editFindNext.setEnabled(false);
        }
    }
 	
 	//查找事件
 	void FindText()
 	{
 		findDialog = new Dialog(this,"查找");
        JPanel p1 = new JPanel();
        JPanel p2 = new JPanel();
        findtxt = new JTextField(7);
        p1.add(new JLabel("输入要查找字符:"));
        p1.add(findtxt);
        p2.setLayout(new FlowLayout());
        p2.add(FindNextItem);
        p2.add(findenter);
        p2.add(cancel2);
        findDialog.add("Center",p1);
        findDialog.add("South",p2);
        findDialog.setLocation(300,200);
        findDialog.setSize(300,100);
        findDialog.show();
 	}
 	
 	//查找弹出窗口的'确定'事件
 	void FindEnter()
 	{
 		if(findtxt.getText().equals("")) 
        { 
            findDialog.dispose(); 
        }
        else if(!findtxt.getText().equals(""))
        { 
            str = textArea.getText();
            startp = str.indexOf(findtxt.getText());
            endp = startp + findtxt.getText().length();
            textArea.select(startp,endp);
            editFindNext.setEnabled(true);
            newendp = endp;////////获取这次查找的终点
            notfindmethod();
        }
 	}
 	
 	//查找下一个事件
 	void FindNext()
 	{
 		nexttemp = newendp; /////获取上次查找的终点做为未查找字符串的起点
        String strall = textArea.getText();
        textArea.select(nexttemp,strall.length()); /////选中所有未查找的字符串
        strnext = textArea.getSelectedText();
        newstartp = strnext.indexOf(findtxt.getText()) + nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置
        newendp = newstartp + findtxt.getText().length();

⌨️ 快捷键说明

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