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

📄 jsb.java

📁 一个JAVA做的记事本模仿WINDOWS做的 实现简单的功能~~~~~可当作学习用
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import javax.*;

public class jsb extends JFrame implements ActionListener,WindowListener,
     TextListener,CaretListener
{
	//命名File菜单栏
	private JMenuItem jmiNew,jmiOpen,jmiSave,jmiSaveAs,jmiPageSetup,jmiPrint,jmiExit;
	//命名Edit菜单栏
	private JMenuItem Edit_Undo,Edit_Cut,Edit_Copy,Edit_Paste,Edit_Delete,Edit_SelectAll,
	                   Date_Time,Edit_Find,Edit_FindNext,Edit_Replace,Edit_Goto;
    //命名Format菜单栏
    private JMenuItem Format_Wrap,Format_Font;
    //命名View菜单栏   
    private JMenuItem View_StatusBar;
    //命名Help菜单栏
    private JMenuItem Help_GetHelp,Help_About;
    
	private JLabel jlblStatus=new JLabel();	
	String FileName="";
	boolean textChanged;
	boolean fileSaveSuccess;
	private JTextArea EditArea;	
    private JFileChooser JFC;   
    
	public jsb()
	{		        
		setTitle("记事本");
		this.addWindowListener(this);
		JMenuBar mb=new JMenuBar();
		setJMenuBar(mb);		
		
        textChanged=false;
        fileSaveSuccess=false;        
        JFC=new JFileChooser();        
        
        EditArea=new JTextArea();	   
        EditArea.addCaretListener(this);
        	
		//建立File菜单栏
		JMenu fileMenu=new JMenu("文件(F)");
		mb.add(fileMenu);
		fileMenu.add(jmiNew=new JMenuItem("新建(N)"));
		fileMenu.add(jmiOpen=new JMenuItem("打开(O)"));
		fileMenu.add(jmiSave=new JMenuItem("保存(S)"));
		fileMenu.add(jmiSaveAs=new JMenuItem("另保存(A)"));
		fileMenu.addSeparator();
		fileMenu.add(jmiPageSetup=new JMenuItem("页面设置(U)"));
		fileMenu.add(jmiPrint=new JMenuItem("打印(P)"));		
		fileMenu.addSeparator();
		fileMenu.add(jmiExit=new JMenuItem("关闭(X)"));
		jmiNew.addActionListener(this);
		jmiOpen.addActionListener(this);
		jmiSave.addActionListener(this);
		jmiSaveAs.addActionListener(this);
		jmiPageSetup.addActionListener(this);
		jmiPrint.addActionListener(this);
		jmiExit.addActionListener(this);
		
		//建立Edit菜单
		JMenu editMenu=new JMenu("编辑(E)");
		mb.add(editMenu);
		editMenu.add(Edit_Undo=new JMenuItem("撤销(U)"));
		editMenu.addSeparator();
		editMenu.add(Edit_Cut=new JMenuItem("剪切(T)"));
		editMenu.add(Edit_Copy=new JMenuItem("复制(C)"));
		editMenu.add(Edit_Paste=new JMenuItem("粘贴(P)"));
		editMenu.add(Edit_Delete=new JMenuItem("删除(L)"));
	
		Edit_Undo.addActionListener(this);
		Edit_Cut.addActionListener(this);
		Edit_Copy.addActionListener(this);
		Edit_Paste.addActionListener(this);
		Edit_Delete.addActionListener(this);        
		editMenu.addSeparator();
		editMenu.add(Edit_Find=new JMenuItem("查找(F)"));
		editMenu.add(Edit_FindNext=new JMenuItem("查找下一个(N)"));
		editMenu.add(Edit_Replace=new JMenuItem("替换(R)"));
		editMenu.add(Edit_Goto=new JMenuItem("转到(G)"));	
		Edit_Find.addActionListener(this);
		Edit_FindNext.addActionListener(this);
		Edit_Replace.addActionListener(this);
		Edit_Goto.addActionListener(this);
		editMenu.addSeparator();
		editMenu.add(Edit_SelectAll=new JMenuItem("全选(A)"));
		Edit_SelectAll.addActionListener(this);  
		editMenu.addSeparator();      		
		editMenu.add(Date_Time=new JMenuItem("时间(T)"));
		Date_Time.addActionListener(this);
		
		//建立Format菜单栏
		JMenu formatMenu=new JMenu("格式(O)");
		mb.add(formatMenu);
		formatMenu.add(Format_Wrap=new JMenuItem("自动换行(W)"));
		formatMenu.add(Format_Font=new JMenuItem("字体(F)"));
		Format_Wrap.addActionListener(this);
		Format_Font.addActionListener(this);
		
		//建立View菜单栏
        JMenu ViewMenu=new JMenu("查看(V)");
        mb.add(ViewMenu);
        ViewMenu.add(View_StatusBar=new JMenuItem("状态栏(S)"));
        View_StatusBar.addActionListener(this);
        
        		
		//建立Help菜单栏
		JMenu helpMenu=new JMenu("帮助(H)");
		mb.add(helpMenu);
		helpMenu.add(Help_GetHelp=new JMenuItem("帮助主题(H)"));
		helpMenu.addSeparator();
		helpMenu.add(Help_About=new JMenuItem("关于"));
		Help_GetHelp.addActionListener(this);
		Help_About.addActionListener(this);			
		
		JFC.setCurrentDirectory(new File("."));
		getContentPane().add(new JScrollPane(EditArea),BorderLayout.CENTER);
		getContentPane().add(jlblStatus,BorderLayout.SOUTH);		
	    
	}
	
	public void actionPerformed(ActionEvent e)
	{
		String actionCommand=e.getActionCommand();
		
		if(e.getSource() instanceof JMenuItem)
		{	
			if("新建(N)".equals(actionCommand))
			  textNew();
			if("打开(O)".equals(actionCommand))
			  open();
			if("保存(S)".equals(actionCommand)) 
			   textSave();
			if("另保存(A)".equals(actionCommand)) 
			   textSaveAs();
			if("页面设置(U)".equals(actionCommand)) 
			   pageSetup();
			if("打印(P)".equals(actionCommand)) 
			   textPrint();			
			if("撤销(U)".equals(actionCommand))
			   undo();
			if("剪切(T)".equals(actionCommand))
			  textCut();
			if("复制(C)".equals(actionCommand))
			  textCopy();
			if("粘贴(P)".equals(actionCommand))
			  textPaste();
			if("删除(L)".equals(actionCommand))
			  textDelete();
			if("全选(A)".equals(actionCommand))
			  selectAll();
			if("时间(T)".equals(actionCommand))
			  getDate();
			if("状态栏(S)".equals(actionCommand))
			  status();
			if("关于".equals(actionCommand)) 
			  about();
			if("关闭(X)".equals(actionCommand))
			  close();
			     
		}
	}
	public void windowClosing(WindowEvent e)
	{
       this.close(); 
    }
    public void windowOpened(WindowEvent e){}
    public void windowIconified(WindowEvent e){}
    public void windowDeiconified(WindowEvent e){}
    public void windowClosed(WindowEvent e){}
    public void windowActivated(WindowEvent e){}
    public void windowDeactivated(WindowEvent e){}
    public void textValueChanged(TextEvent e){
      this.textChanged=true;
     }
    public void caretUpdate(CaretEvent e){
       this.textChanged=true;
     }
     
    //新建文本文档
    public void textNew(){
    if(textChanged==true){
      int select=JOptionPane.showConfirmDialog(null,"文本已修改,是否保存","文件保存",JOptionPane.YES_NO_CANCEL_OPTION);
      if(select==JOptionPane.YES_OPTION){
        this.textSave();
        if(fileSaveSuccess==false){
          return;}
        else{
          EditArea.setText("");
          this.textChanged=false;
        }
      }
      else if(select==JOptionPane.NO_OPTION){
        EditArea.setText("");
        this.textChanged=false;
      }
      else{
        return;
      }
    }
    else{
       EditArea.setText("");
    }
   }
   
   //打开文本文档 
	private void open()
	{
		if(JFC.showOpenDialog(this)==JFileChooser.APPROVE_OPTION)
		  {
		  	open(JFC.getSelectedFile());
		  }
	}
	
	
	private void open(File file)
	{
	  try
	  {
	  	BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
	  	byte[] b=new byte[in.available()];
	  	in.read(b,0,b.length);
	  	EditArea.append(new String(b,0,b.length));
	  	in.close();
	  	
	  	jlblStatus.setText(file.getName()+"已打开");
	  	 
	  }	
	  catch(IOException ex)
	  {
	  	jlblStatus.setText("发生错误"+file.getName());
	  }
	}
	
	//保存文本文档
	private void textSave()
	{
		if(JFC.showSaveDialog(this)==JFileChooser.APPROVE_OPTION)
		  {
		  	textSave(JFC.getSelectedFile());
		  }
	}
	
	private void textSave(File file)
	{
	  try
	  {
	  	BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(file));
	  	byte[] b=(EditArea.getText()).getBytes();
	  	out.write(b,0,b.length);	  	
	  	out.close();
	  	
	  	jlblStatus.setText(file.getName()+"已关闭");
	  	 
	  }	
	  catch(IOException ex)
	  {
	  	jlblStatus.setText("发生错误"+file.getName());
	  }
	}
	
	//另存为文本文档
    public void textSaveAs(){
       int select=JFC.showSaveDialog(this);
       if(select==JFileChooser.APPROVE_OPTION){
       this.FileName=JFC.getSelectedFile().getPath();
       this.textSave();
        }
       else {
         this.fileSaveSuccess=false;
         return;
        }
     }
    //页面设置
    public void pageSetup(){
     }
    //打印
    public void textPrint(){
     }
    //关闭
    public void close(){
      if(this.textChanged==true){
        int select=JOptionPane.showConfirmDialog(null,"文本已修改,是否保存","文件保存",JOptionPane.YES_NO_CANCEL_OPTION);
        if(select==JOptionPane.YES_OPTION){
          this.textSave();
          if(fileSaveSuccess==false){
            return;
          }
          System.exit(1);
        }
       else if(select==JOptionPane.NO_OPTION){
         System.exit(1);
       }
       else{
         return;
       }
      }
      else{
        System.exit(1);
      }
    }
    //撤销
    public void undo(){
    }
    //复制
    public void textCopy(){
      this.EditArea.copy();
    }
    //剪切
    public void textCut(){
      this.EditArea.cut();
      this.textChanged=true;
    }
    //粘贴
    public void textPaste(){
      this.EditArea.paste();
      this.textChanged=true;
    }
    //全选
    public void selectAll(){
      this.EditArea.selectAll();
    }  
    //删除
    public void textDelete(){
      int begin=this.EditArea.getSelectionStart();
      System.out.println(begin);
      int end=this.EditArea.getSelectionEnd();
      System.out.println(end);
      String newText="";
      newText = this.EditArea.getText().substring(0,begin)
            +this.EditArea.getText().substring(end,this.EditArea.getText().length());
      this.EditArea.setText(newText);
      this.textChanged=true;
    }
    //获得日期时间
    public void getDate(){
      Date now=new Date();
      int minute=now.getMinutes();
      String min;
      if(minute>=10){
        min=Integer.toString(minute);
      }
        else{
        min="0"+Integer.toString(minute);
      }
      this.EditArea.setText(this.EditArea.getText()+now.getHours()+":"+min+"  "
                           +(now.getYear()+1900)+"-"+now.getMonth()+"-"+now.getDate());
      this.textChanged=true;
    }
    //查找
    public void textFind(){
    }
    //查找下一个
    public void textFindNext(){
    }
    //转到
    public void Goto(){

    }
    //替换
    public void textReplace(){
    }  
    //设置字体
    public void setFont(){
    
    }
    //自动换行
    public void wrap(){
      boolean oldWrap=this.EditArea.getLineWrap();
      if(oldWrap){
        this.Format_Wrap.setLabel("自动换行(W)");
      }
      else{
        this.Format_Wrap.setLabel("*自动换行(W)");
      }
      this.EditArea.setLineWrap(!oldWrap);
    }
    //显示帮助信息
    public void getHelp(){
    }
    //显示关于
    public void about(){
    	JOptionPane.showMessageDialog(this,"作者:天天","关于这个记事本",
    	JOptionPane.INFORMATION_MESSAGE);
    }
    //状态栏
    public void status(){
      this.status();
    }
    
  	public static void main(String[] args)
	{
		jsb frame=new jsb();
		frame.setSize(600,400);
		frame.setVisible(true);	
			
	}
}

⌨️ 快捷键说明

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