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

📄 main.java

📁 windows记事本功能的软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import java.util.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.event.*;
import javax.swing.tree.*;
 class MyFrame extends JFrame implements MouseListener,ActionListener,ItemListener
{
	 int x=-1,y=-1;
 	 SerachDialog Srd;
	 ReplaceDialog Rld;
	 HelpDialog Hdg;
     TwoDialog Mf2;
	 GotoDialog Goto;
	// myTree mytree;
     Date nowTime=new Date();
     MenuBar menubar;
     Clipboard clipboard=null;
     Menu menu,menu1,menu2,abort,窗体风格;
     MenuItem mit1,mit2,mit3,mit4,mit5,mit6,mit7,mit8,mit9,
		      mit10,mit11,mit12,mit13,mit14,mit15,
		      find,replace,jump,help,mit16,Window风格,Motif风格,Metal风格;
     FileDialog fileopen,filesave;
     JTextArea text1;
     BufferedReader cin;
     FileReader  in;
     BufferedWriter out;
     FileWriter tofile;
	JFileChooser chooser=new JFileChooser();
	 CheckboxMenuItem 自动换行;
	 PopupMenu popmenu;
	 
    // TextArea.SCROLLBARS_HORIZONTAL_ONLY;
     //TextArea.SCROLLBARS_VERTICAL_ONLY;
     MenuShortcut srt1=new MenuShortcut(KeyEvent.VK_N);
     MenuShortcut srt2=new MenuShortcut(KeyEvent.VK_O);
     MenuShortcut srt3=new MenuShortcut(KeyEvent.VK_S);
     MenuShortcut srt4=new MenuShortcut(KeyEvent.VK_P);
     MenuShortcut srt5=new MenuShortcut(KeyEvent.VK_E);
     MenuShortcut srt6=new MenuShortcut(KeyEvent.VK_X);
     MenuShortcut srt7=new MenuShortcut(KeyEvent.VK_C);
     MenuShortcut srt8=new MenuShortcut(KeyEvent.VK_V);
     MenuShortcut srt9=new MenuShortcut(KeyEvent.VK_D);
     MenuShortcut srt10=new MenuShortcut(KeyEvent.VK_F);
     MenuShortcut str15=new MenuShortcut(KeyEvent.VK_A);
     PrintJob p=null;
     Graphics g=null;
	// private DriverManager driver;
  //    int text_event=0,new_option=0,open_option=0,exit_option=0,window_close=0;
     ConstDialog constdialog=null;
	JToolBar jtb;
	Container con;
	JScrollPane jsp,jsp1,jsp2;
	JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;
	JSplitPane split_one,split_three;
	Choice jFilelist,jDriver;
	JList list1;
	JTree tree=null;
    JPanel pane5;//pane2,pane3,pane4,pane5;
    DefaultMutableTreeNode root,t1;
	//Box 驱动列表,textA,textB,文件过滤,总盒子;
	MyFrame(String s)
	{
        super(s);
		pane5=new JPanel();
		pane5.setLayout(new BorderLayout());
		Container con=this.getContentPane();
		text1=new JTextArea();
		text1.setLineWrap(false);
		text1.addMouseListener(this);
	    Vector listData=new Vector();
		jDriver=new Choice();
		jDriver.addItemListener(this);
		File[] dvs=File.listRoots();
		String[] names=new String[dvs.length];
		for(int i=1;i<dvs.length;i++)
		{
			names[i]=dvs[i].getPath();
			jDriver.add(names[i]);
		}

	    String 路径=jDriver.getSelectedItem();
        root=new DefaultMutableTreeNode(路径);
		File path=new File(路径);
		File[] listfile=path.listFiles();
		for(int j=1; j<listfile.length; j++)
		{
		       if(listfile[j].isDirectory())
			{
			   t1=new DefaultMutableTreeNode(listfile[j]);
		       root.add(t1);
		    }
			else if(listfile[j].isFile())
			{
              
			  listData.add(listfile[j]);
			}
		}
		listData.set(0,"文件");
		list1=new JList();
		list1.setListData(listData);
		//int n=tree.getCounts();
		tree=new JTree(root);
	    jFilelist=new Choice();
		jsp1=new JScrollPane(tree);
		jsp2=new JScrollPane(list1);	 
		pane5.add(jDriver,BorderLayout.NORTH);
		pane5.add(jFilelist,BorderLayout.SOUTH);
	    jsp=new JScrollPane(text1);
		Srd=new SerachDialog(this,"查找文件对话框",false);
		Rld=new ReplaceDialog(this,"替换文件对话框",false);
		jtb=new JToolBar(); 
		//con.add(jsp,BorderLayout.CENTER);
        Mf2=new TwoDialog(this,"选择字体框",true);
       // Mf2.setVisible(false);
		constdialog=new ConstDialog(this,"保存文对话框",true);
        constdialog.setVisible(false);
        Srd=new SerachDialog(this,"查找文件对话框",false);
		Rld=new ReplaceDialog(this,"替换文件对话框",false);
		Hdg=new HelpDialog(this,"关于记事本",true);
		Goto=new GotoDialog(this,"跳到当前行",false);
		Goto.确定.addActionListener(this);
		Goto.取消.addActionListener(this);
	   // jsp1=new JScrollPane(text2);
		//jsp2=new JScrollPane(text3);
		popmenu=new PopupMenu();
		popmenu.add(new MenuItem("删除"));
		popmenu.getItem(0).addActionListener(this);
		popmenu.addSeparator();
		popmenu.add(new MenuItem("复制"));
		popmenu.getItem(2).addActionListener(this);
		popmenu.add(new MenuItem("剪贴"));
		popmenu.getItem(3).addActionListener(this);
		popmenu.add(new MenuItem("粘贴"));
		popmenu.getItem(4).addActionListener(this);
		popmenu.addSeparator();
		popmenu.add(new MenuItem("全选"));
		popmenu.getItem(6).addActionListener(new ActionListener()
				{
			     public void actionPerformed(ActionEvent Item6)
					{
                            if(Item6.getSource()==popmenu.getItem(6))
								 {
									 text1.selectAll();
								 }
					}
				});
		con.add(popmenu);
		Icon icon1=new ImageIcon("a.gif");
		Icon icon2=new ImageIcon("b.gif");
		Icon icon3=new ImageIcon("c.gif");
		Icon icon4=new ImageIcon("d.gif");
		Icon icon5=new ImageIcon("Cut.gif");
		Icon icon6=new ImageIcon("Color.gif");
		Icon icon7=new ImageIcon("help.gif");
		btn1=new JButton(icon1);
		btn1.setToolTipText("打开");
		btn2=new JButton(icon2);
		btn2.setToolTipText("保存");
		btn3=new JButton(icon3);
		btn3.setToolTipText("查找");
		btn4=new JButton(icon4);
		btn4.setToolTipText("替换");
		btn1.addActionListener(this);
		btn5=new JButton(icon5);
	    btn5.setToolTipText("剪切");
		btn5.addActionListener(this);
		btn6=new JButton(icon6);
		btn6.setToolTipText("设置背景颜色");
		btn6.addActionListener(this);
		btn7=new JButton(icon7);
		btn7.setToolTipText("关于记事本");
		btn7.addActionListener(this);
		btn1.setBorder(BorderFactory.createRaisedBevelBorder());
		btn2.addActionListener(this);
		btn2.setBorder(BorderFactory.createRaisedBevelBorder());
		btn3.addActionListener(this);
		btn3.setBorder(BorderFactory.createRaisedBevelBorder());
		btn4.addActionListener(this);
		btn4.setBorder(BorderFactory.createRaisedBevelBorder());
		btn5.setBorder(BorderFactory.createRaisedBevelBorder());
		btn6.setBorder(BorderFactory.createRaisedBevelBorder());
		btn7.setBorder(BorderFactory.createRaisedBevelBorder());
		jtb.setFloatable(false);
        jtb.add(btn1);jtb.add(btn2);jtb.add(btn3);jtb.add(btn4);jtb.add(btn5);jtb.add(btn6);jtb.add(btn7);
		 con.add(jtb,BorderLayout.NORTH);
	    clipboard=getToolkit().getSystemClipboard();   //获取系统剪切板
	    menu=new Menu("文件");
		menubar=new MenuBar();
        menubar.add(menu);
	    mit1=new MenuItem("新建");
        mit1.setShortcut(srt1);
	    mit1.addActionListener(this);
	    menu.add(mit1);
	    mit2=new MenuItem("打开");
	    mit2.setShortcut(srt2);
	    mit2.addActionListener(this);
	    menu.add(mit2);
	    mit3=new MenuItem("保存");
	    mit3.setShortcut(srt3);
	    mit3.addActionListener(this);
	    menu.add(mit3);
	    //mit14=new MenuItem("打开文本");
	    //mit14.addActionListener(this);
	   // menu.add(mit14);
	    mit4=new MenuItem("别存为....");
	    mit4.addActionListener(this);
	    menu.add(mit4);
	    menu.addSeparator();
	    mit13=new MenuItem("打印");
		mit13.setShortcut(srt4);
	    mit13.addActionListener(this);
	    menu.add(mit13);
	    menu.addSeparator();
        mit5=new MenuItem("退出");
	    mit5.setShortcut(srt5);
	    mit5.addActionListener(this);
	    menu.add(mit5);
	    menu1=new Menu("编辑");
	    menubar.add(menu1);
	    mit6=new MenuItem("剪切");
	    mit6.setShortcut(srt6);
	    mit6.addActionListener(this);
	    menu1.add(mit6);
	    mit7=new MenuItem("复制");
	    mit7.setShortcut(srt7);
		// mit7.setEnabled(false);
	    mit7.addActionListener(this);
	    menu1.add(mit7);
	    mit8=new MenuItem("粘贴");
	    mit8.setShortcut(srt8);
	    mit8.addActionListener(this);
	    mit8.setEnabled(false);
	    menu1.add(mit8);
	    mit9=new MenuItem("全部删除");
	    mit9.setShortcut(srt9);
	    mit9.addActionListener(this);
	    menu1.add(mit9);
	    menu1.addSeparator();
	    find=new MenuItem("查找");
	    find.addActionListener(this);
	    Srd.btn1.addActionListener(this);
		Srd.btn2.addActionListener(this);
	    menu1.add(find);
	    replace=new MenuItem("替换");
	    replace.addActionListener(this);
		Rld.btn1.addActionListener(this);
		Rld.btn2.addActionListener(this);
		Rld.btn3.addActionListener(this);
		Rld.btn4.addActionListener(this);
	    menu1.add(replace);
	    jump=new MenuItem("跳行");
	    jump.addActionListener(this);
	    menu1.add(jump);
	    menu1.addSeparator();
	    mit10=new MenuItem("时间/日期");
	    mit10.addActionListener(this);
	    menu1.add(mit10);
	    mit15=new MenuItem("全选");
	    mit15.addActionListener(new ActionListener()
				{
			     public void actionPerformed(ActionEvent aet)
					{
                            if(aet.getSource()==mit15)
								 {
									 text1.selectAll();
								 }
					}
				});
	    menu1.add(mit15);
	    menu2=new Menu("格式");
	    menubar.add(menu2);
		自动换行=new CheckboxMenuItem("自动换行");
		自动换行.addItemListener(this);
		menu2.add(自动换行);
        mit11=new MenuItem("选择字体");
	    mit11.setShortcut(srt10);
	    mit11.addActionListener(this);
	    menu2.add(mit11);
		menu2.addSeparator();
	    mit12=new MenuItem("设置背景颜色");
	    mit12.addActionListener(this);
	    menu2.add(mit12);
	    abort=new Menu("帮助"); 
	    menubar.add(abort);
	    mit16=new MenuItem("记事本帮助");
	    mit16.addActionListener(this);
	    abort.add(mit16);
		abort.addSeparator();
	    help=new MenuItem("关于记事本");
	    help.addActionListener(this);
	    abort.add(help);
		窗体风格=new Menu("窗体风格");
		menubar.add(窗体风格);
		Window风格=new MenuItem("Window  风格");
		Window风格.addActionListener(this);
		窗体风格.add(Window风格);
        窗体风格.addSeparator();
		Metal风格=new MenuItem("Metal    风格");
		Metal风格.addActionListener(this);
		窗体风格.add(Metal风格);
		窗体风格.addSeparator();
		Motif风格=new MenuItem("Motif    风格");
        Motif风格.addActionListener(this);
		窗体风格.add(Motif风格);
	   // add(jsp);
	    constdialog. 确定.addActionListener(this);
	    constdialog.否.addActionListener(this);
	    constdialog.退出.addActionListener(this);
	    Mf2.btn1.addActionListener(this);
        fileopen=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
	    fileopen.setVisible(false);
	    filesave=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
	    filesave.setVisible(false);
	    setMenuBar(menubar);
		split_three=new JSplitPane(JSplitPane.VERTICAL_SPLIT,jsp1,jsp2);
		pane5.add(split_three);
		con.add(pane5);
		split_one=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,pane5,jsp);
		//split_one.scrollRectToVisible(false);
		con.add(split_one);
        

          Mf2. addWindowListener(new WindowAdapter()
                                        {
					 public void windowClosing(WindowEvent e)
						 {
						     Mf2.setVisible(false);
						}
                                        });
         constdialog.addWindowListener(new WindowAdapter()
                                        {
					 public void windowClosing(WindowEvent e)
						 {
						       constdialog.setVisible(false);
						}
                                        });
	    addWindowListener(new WindowAdapter()
		                               {
						 public void windowClosing(WindowEvent e)
						       {
							  String s=text1.getText();
							  char a[]=s.toCharArray();
							  if(a.length==0)
							       {
								  System.exit(0);
							       }
							       else
							       {
								 int h=JOptionPane.showConfirmDialog(text1,"你有文件没保存,确定退出吗?","确认对话框",JOptionPane.YES_NO_OPTION);
								if(h==JOptionPane.YES_OPTION)
								       {
									   System.exit(0);
									}
								else  if(h==JOptionPane.NO_OPTION)
								       {
									     filesave.setVisible(true);
								       }

							       }
							 }
                        	});

           setVisible(true);
	 //  text1.setFocus(true);
	   setBounds(130,30,800,700);
	     
	    validate();

        }
		
	public void mousePressed(MouseEvent emouse) 
	{
		x=emouse.getX();
		y=emouse.getY();
	   if(emouse.getModifiers()==InputEvent.BUTTON3_MASK)
		{
			popmenu.show(text1,x,y);
		}
	}
	public void mouseReleased(MouseEvent emouse){}
	public void mouseExited(MouseEvent emouse){}
	public void mouseEntered(MouseEvent emouse){}
	public void mouseClicked(MouseEvent emouse){}


	public void actionPerformed(ActionEvent e)
	{
        
	     if(e.getSource()==mit2)
		{
		     fileopen.setVisible(true);
		     text1.setText(null);
		     String s;
		     if(fileopen.getFile()!=null)
			{
			     try{
				     File file=new File(fileopen.getDirectory(),fileopen.getFile());  //获取当前目录下选定的文件
                                     in=new FileReader(file);
					 String title=fileopen.getFile();
		             setTitle(title+"   记事本");
				     cin=new BufferedReader(in);
				     while((s=cin.readLine())!=null)
					  text1.append(s+'\n');
				      cin.close();
				      in.close();
			         }
				 catch(IOException e2){}
		        }
		}
		if(e.getSource()==mit3)
		{
			try
			{
				File file=new File(fileopen.getDirectory(),fileopen.getFile());
				      tofile=new FileWriter(file);
				      out=new BufferedWriter(tofile);
				      out.write(text1.getText(),0,(text1.getText()).length());
				      out.flush();
				      out.close();
				      tofile.close();
		    }
			catch(Exception exception){}

		}
	      if(e.getSource()==mit4)
		{
		      filesave.setVisible(true);
		      if(filesave.getFile()!=null)
			{
			      try{
				      File file=new File(filesave.getDirectory(),filesave.getFile());
				      tofile=new FileWriter(file);
				      out=new BufferedWriter(tofile);
				      out.write(text1.getText(),0,(text1.getText()).length());
				      out.flush();
				      out.close();
				      tofile.close();
			          }
				  catch(IOException e2){}
		        }
	        }
		if(e.getSource()==mit5)
		{
			String s=text1.getText();
			char a[]=s.toCharArray();
			//for(int i=0;i<a.length;i++)
		    if(a.length==0)
			    {
			    System.exit(0);
			    }
			  else
			      {
				  int n=JOptionPane.showConfirmDialog(this,"你有文件没保存,确定退出吗?","确认对话框",JOptionPane.YES_NO_OPTION);
				  if(n==JOptionPane.YES_OPTION)
			          {
					  System.exit(0);
			          }
				    else if(n==JOptionPane.NO_OPTION)
				       {
					    filesave.setVisible(true);

⌨️ 快捷键说明

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