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

📄 texteditor.java

📁 Java写的记事本程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package editor;

import javax.swing.event.*;//列表事件
import java.awt.*; 
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

import javax.swing.UIManager;

public class TextEditor{
  public static void main(String[] args){ 
   MyGui myGui=new MyGui();
   myGui.setVisible(true);
   myGui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }//main
}//class TextEditor   


class MyGui  extends JFrame{
   
    
   JTextArea jTextArea;	
   File file=null;
   char []buffer;
   JFileChooser filechooser; 
   JMenuBar mb=new JMenuBar();
   JToolBar bar=new JToolBar("工具栏");
   JButton tb1,tb2,tb3,tb4,tb5,tb6; 
   /////////文件菜单
   JMenu jMenuFile=new JMenu("文件(F)");
   JMenu setColor=new  JMenu("设置"); 
   JMenuItem mNew=new JMenuItem("新建",new ImageIcon("New.jpg"));  
   JMenuItem mOpen = new JMenuItem("打开...",new ImageIcon("Open.jpg")); 
   JMenuItem mSave=new JMenuItem("保存",new ImageIcon("Save.jpg")); 
   JMenuItem mSaveTo=new JMenuItem("另存为...",new ImageIcon("Save.jpg")); 
   JMenuItem mBColor=new  JMenuItem("背景颜色",new ImageIcon("Set.jpg"));
   JMenuItem mExit=new JMenuItem("退出",new ImageIcon("Exit.jpg"));
   
   /////////编辑菜单
   JMenu jMenuEdit=new JMenu("编辑(E)");
   JMenuItem mClear=new JMenuItem("全部清除!");
   JMenuItem mCut=new JMenuItem("剪切",new ImageIcon("Cut.jpg"));
   JMenuItem mCopy=new JMenuItem("复制",new ImageIcon("Copy.jpg")); 
   JMenuItem mPaste=new JMenuItem("粘贴",new ImageIcon("Paste.jpg")); 
   JMenuItem mDel=new JMenuItem("删除");
   JMenuItem mSelect=new JMenuItem("全选"); 

	///////格式菜单  
   JMenu jMenuForm=new JMenu("格式(O)"); 
   JCheckBoxMenuItem jMenuHuanHang=new JCheckBoxMenuItem("自动换行",new ImageIcon("Huanhang.jpg")); 
   JMenuItem mFont=new  JMenuItem("字体... ",new ImageIcon("Font.jpg"));
   JMenuItem jColor=new  JMenuItem("字体颜色...",new ImageIcon("Color.jpg"));
 
   
   ///////帮助菜单
   JMenu jMenuHelp=new JMenu("帮助(H)"); 
   JMenuItem jMenuHelpAbout=new JMenuItem("关于...",new ImageIcon("Help.jpg"));


   ///////弹出式菜单
   JPopupMenu pm=new JPopupMenu(); 
   JMenuItem jMenuFileClear1=new JMenuItem("全部清除!"); 
   JMenuItem jMenuFileCut1=new JMenuItem("剪切"); 
   JMenuItem jMenuFileCopy1=new JMenuItem("复制"); 
   JMenuItem jMenuFilePaste1=new JMenuItem("粘贴"); 
   JMenuItem jMenuFileDel1=new JMenuItem("删除"); 
   JMenuItem jMenuFileSelect1=new JMenuItem("全选");
   

   
   
  public MyGui(){
  	
  	   try {
  	UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
  	//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
  	//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.MotifLookAndFeel");
  	//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.GTKLookAndFeel");
  	//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.MetalLookAndFeel");
  	}
    catch (Exception e) {
      e.printStackTrace();
     
    }
      jTextArea=new JTextArea(20,20); 
      Container c=getContentPane();  
      JScrollPane sp=new JScrollPane(jTextArea);
      c.add(sp);
      c.add(bar,"North");
      setTitle("记事本");
      setSize(600,600);
      
      //添加工具栏
      tb1=new JButton(new ImageIcon("New.jpg"));
      tb2=new JButton(new ImageIcon("Open.jpg"));
      tb3=new JButton(new ImageIcon("Save.jpg"));
      tb4=new JButton(new ImageIcon("Cut.jpg"));
      tb5=new JButton(new ImageIcon("Copy.jpg"));
      tb6=new JButton(new ImageIcon("Paste.jpg"));
      bar.add(tb1);  tb1.setToolTipText("新建");
      bar.add(tb2);  tb2.setToolTipText("打开");
      bar.add(tb3);  tb3.setToolTipText("保存");
      bar.add(tb4);  tb4.setToolTipText("剪切");
      bar.add(tb5);  tb5.setToolTipText("复制");
      bar.add(tb6);  tb6.setToolTipText("粘贴");
            
      //添加文件菜单
      jMenuFile.setMnemonic('F');//设置快捷键
      setColor.add(mBColor);
      jMenuFile.add(mNew); 
      jMenuFile.add(mOpen); 
      jMenuFile.add(mSave);
      jMenuFile.add(mSaveTo);
      jMenuFile.add(setColor); 
      jMenuFile.addSeparator();
      jMenuFile.add(mExit);
      mNew.setForeground(new Color(200,100,150));//设置新建菜单项的前景色
      //mNew.setFont(new Font("华文楷体",Font.PLAIN,13));//设置新建菜单项的字体
      setColor.setBackground(new Color(180,170,240));
      mOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));//把加速器CTRL+O关联到打开菜单项
      mSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
      
      //添加编辑菜单
      jMenuEdit.setMnemonic('E'); //设置快捷键
      jMenuEdit.add(mClear);  
      jMenuEdit.addSeparator(); 
      jMenuEdit.add(mCut);
      jMenuEdit.add(mCopy);
      jMenuEdit.add(mPaste);
      jMenuEdit.add(mDel);
      jMenuEdit.addSeparator(); 
      jMenuEdit.add(mSelect);
      mCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));//加速器 
      mCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
      mPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK));
      mDel.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_MASK));  
       
      //添加格式菜单
      jMenuForm.setMnemonic('O');//设置快捷键      
	  jMenuForm.add(jMenuHuanHang); 
      jMenuForm.addSeparator(); 
      jMenuForm.add(jColor); 
     
      jMenuForm.add(mFont); 
      mFont.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK));//加速器
      //添加帮助菜单
      jMenuHelp.setMnemonic('H');//设置快捷键
      jMenuHelp.add(jMenuHelpAbout); 
      //添加弹出菜单
      jTextArea.add(pm);
      pm.add(jMenuFileClear1); 
      pm.addSeparator(); 
      pm.add(jMenuFileCut1); 
      pm.add(jMenuFileCopy1); 
      pm.add(jMenuFilePaste1); 
      pm.add(jMenuFileDel1); 
      pm.addSeparator(); 
      pm.add(jMenuFileSelect1); 
    

      // 添加菜单至菜单条并设置颜色
      mb.add(jMenuFile);    
      mb.add(jMenuEdit);   
      mb.add(jMenuForm);    
      mb.add(jMenuHelp);    
      setJMenuBar(mb);
      jMenuFile.setFont(new Font("楷体_GB2312",Font.PLAIN,14));
      jMenuForm.setFont(new Font("楷体_GB2312",Font.PLAIN,14));
      jMenuEdit.setFont(new Font("楷体_GB2312",Font.PLAIN,14));
      jMenuHelp.setFont(new Font("楷体_GB2312",Font.PLAIN,14)); 
      jMenuFile.setBackground(new Color(180,170,240));
      jMenuEdit.setBackground(new Color(180,170,240));
      jMenuForm.setBackground(new Color(180,170,240));
      jMenuHelp.setBackground(new Color(180,170,240));
      mb.setBackground(new Color(180,170,240));
   
      //////文件菜单的事件监听器////
      filechooser=new JFileChooser();
      
       //新建菜单项事件
       mNew.addActionListener(new ActionListener(){ 
	     public void actionPerformed(ActionEvent e){ 
	         jTextArea.setText("");
	     }
       } );
       //打开菜单项事件
       mOpen.addActionListener(new ActionListener(){ 
	     public void actionPerformed(ActionEvent e) {
	         
	         filechooser.setSelectedFile(file);
             int returnVal=filechooser.showOpenDialog(MyGui.this);//参数是父组件
             if(returnVal==JFileChooser.APPROVE_OPTION)//如果点击确认...
              { file=filechooser.getSelectedFile();//若再接getPath()则返回File对象的名字
                try{FileReader fr=new FileReader(file);
                    int len=(int)file.length();
                    buffer=new char[len];
                    fr.read(buffer,0,len);
                    fr.close();
                    jTextArea.setText(new String(buffer));
                   }catch(IOException ep){ep.getMessage();}
              }//if
	   
	     } 
	   }); 
	  //保存菜单项事件
      mSave.addActionListener(new SaveListener());//内部类事件处理
      mSaveTo.addActionListener(new SaveListener());//内部类事件处理 
      //背景颜色菜单项 
  	 mBColor.addActionListener(new ActionListener(){
	     public void actionPerformed(ActionEvent e) { 
	       Color color = JColorChooser.showDialog(MyGui.this, "选择背景颜色", null);
	       jTextArea.setBackground(color) ;
	     }
	 } );       
	  //退出菜单项事件	  
      mExit.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent e)
           { System.exit(0);}	//要是加上一个对话框提示保存文件就OK
	  });
	  
      ///////////编辑菜单事件监听器
      mClear.addActionListener(new ActionListener(){ 
	    public void actionPerformed(ActionEvent e)
	      {jTextArea.setText("");}
      });//全部清除
      
      mCopy.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent e)
	      {jTextArea.copy();}
      });//拷贝
	  
      mCut.addActionListener(new ActionListener(){ 
	    public void actionPerformed(ActionEvent e)
	      {jTextArea.cut(); }
      });//剪切

      mPaste.addActionListener(new ActionListener(){ 
	    public void actionPerformed(ActionEvent e)
	     {  jTextArea.paste(); }
      }); //粘贴

⌨️ 快捷键说明

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