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

📄 edit.java

📁 Z自己编写的小型程序
💻 JAVA
字号:
import java.io.*;
import java.awt.*;
import  java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
public	class	edit
{
	private	 JFrame	f;
	FileDialog sv,op;
	boolean HasSaved;         
	boolean HasChanged;
	String Savepath="";
	JButton b1,b2,b3,b4,b5,b6,b7;
	private  JTextArea text;
	private	 JMenuBar	mb;
	private	 JMenu	m1,m2,m3,mhelp;
	private	 JMenuItem	mi11,mi12,mi13,mi15,mi21,mi22,mi23,mi31,mi32,mi33,mih;
	Document Doc;
	
	public	edit()
	{
		f=new	JFrame("Edit");
		JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
		f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		HasChanged=false;
		HasSaved=false;
		BorderLayout borderlayout = new BorderLayout();
    	f.getContentPane().setLayout(borderlayout);	
	    text=new JTextArea();
		b1=new JButton(new ImageIcon("new.jpg"));        //按钮
		b2=new JButton(new ImageIcon("open.jpg"));
		b3=new JButton(new ImageIcon("save.jpg"));
		b4=new JButton(new ImageIcon("cut.jpg"));
		b5=new JButton(new ImageIcon("copy.jpg"));
		b6=new JButton(new ImageIcon("paste.jpg"));
		b7=new JButton(new ImageIcon("help.jpg"));
		b1.setToolTipText("新建");
		b2.setToolTipText("打开");
		b3.setToolTipText("保存");
		b4.setToolTipText("剪切");
		b5.setToolTipText("复制");
		b6.setToolTipText("粘贴");
		b7.setToolTipText("帮助");
		b1.addActionListener(new MyListener());
		b2.addActionListener(new MyListener());
		b3.addActionListener(new MyListener());
		b4.addActionListener(new MyListener());
		b5.addActionListener(new MyListener());
		b6.addActionListener(new MyListener());
		b7.addActionListener(new MyListener());
		panel.add(b1);
		panel.add(b2);
		panel.add(b3);
		panel.add(b4);
		panel.add(b5);
		panel.add(b6);
		panel.add(b7);
		f.getContentPane().add(panel, borderlayout.NORTH);
		mb=new	JMenuBar();   // 菜单
		m1=new	JMenu("File");
		m2=new  JMenu("Eidt");
		m3=new	JMenu("Format");
		mhelp=new	 JMenu("Help");
		mi11=new	 JMenuItem("New");
		mi12=new	 JMenuItem("Open");
		mi13=new	 JMenuItem("Save");
		mi15=new	 JMenuItem("Exit");
		mi21=new	 JMenuItem("Cut");
		mi22=new	 JMenuItem("Copy");
		mi23=new	 JMenuItem("Paste");
		mi31=new	 JMenuItem("Font");
		mi32=new	 JMenuItem("Foreground Color");
	    mi33=new	 JMenuItem("Background Color"); 
		mih=new	 JMenuItem("帮助文件");
		mi11.setAccelerator(KeyStroke.getKeyStroke('N',KeyEvent.CTRL_MASK,false));
		mi12.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_MASK,false));
		mi13.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_MASK,false));
		mi21.setAccelerator(KeyStroke.getKeyStroke('X',KeyEvent.CTRL_MASK,false));
		mi22.setAccelerator(KeyStroke.getKeyStroke('C',KeyEvent.CTRL_MASK,false));
		mi23.setAccelerator(KeyStroke.getKeyStroke('V',KeyEvent.CTRL_MASK,false));
		mih.addActionListener(new MyListener());
		mi11.addActionListener(new MyListener());
	    mi12.addActionListener(new MyListener());
	    mi13.addActionListener(new MyListener());
	    mi15.addActionListener(new MyListener());
	    mi21.addActionListener(new MyListener());
	    mi22.addActionListener(new MyListener());
	    mi23.addActionListener(new MyListener());
	    mi31.addActionListener(new MyListener());
	    mi32.addActionListener(new MyListener());
	    mi33.addActionListener(new MyListener());
		f.addWindowListener(new WindowClosing());
		m1.add(mi11);
		m1.add(mi12);
		m1.add(mi13);
		m1.addSeparator();
		m1.add(mi15);
		op=new FileDialog(f,"打开",FileDialog.LOAD);
	    sv=new FileDialog(f,"保存",FileDialog.SAVE);
		m2.add(mi21);
		m2.add(mi22);
		m2.add(mi23);
		m3.add(mi31);
		m3.add(mi32);
		m3.add(mi33);
		f.setJMenuBar(mb);
		mb.add(m1);
		mb.add(m2);
		mb.add(m3);
		mhelp.add(mih);
     	mb.add(mhelp);
		f.getContentPane().add(new JScrollPane(text), borderlayout.CENTER);
	    Doc=text.getDocument();
		Doc.addDocumentListener(new MyTextListener());//文本改变事件监听
		f.setSize(500,400);
		f.setVisible(true);
	}

     public void SaveFile(JFrame parent)       
    //自定义保存文件的函数,可以减少代码的重复
    {
    		HasSaved=true;    		
			FileDialog  Savefd=new FileDialog(parent,"save",FileDialog.SAVE);
			
			Savefd.show();
			try
			{
				Savepath=Savefd.getDirectory()+Savefd.getFile();
				PrintWriter out=new PrintWriter(new FileWriter(Savepath));
				out.print(text.getText());
				out.close();				
			}
			 catch(Exception eee){}    			   	
    }
  
  class MyListener implements ActionListener
   {
    public void actionPerformed(ActionEvent e)
    {
    	if(e.getSource()==mih||e.getSource()==b7)             //帮助
    	{
    		Font font = new Font("Dialog", Font.BOLD, 16);
            UIManager.put("OptionPane.messageFont", font);
            UIManager.put("OptionPane.buttonFont", font);
            JOptionPane.showMessageDialog(f,"作者:周龙龙\r\n"+"E-mail:zllkyo@yahoo.com.cn\r\n"+"开发工具: JCreator 3.50.010");	
    	
    	}	
		if(e.getSource()==mi11||e.getSource()==b1)   // 新建
		{
			int flag=-1;
			if(HasSaved==false&&HasChanged)
			{
				flag=JOptionPane.showConfirmDialog(f,
				"文件文字已改变,是否保存文件?","提示",
				JOptionPane.YES_NO_CANCEL_OPTION);					
			}
			else 
			{
				text.setText("");
			}
			switch(flag)
			{
				case 0:	
				{
					SaveFile(f);					
			        text.setText("");
			        break;
			    }
				case 1:	{ text.setText("");break;	}
				case 2: {  break;}
			}
			text.setForeground(Color.black);
			text.setBackground(Color.white);
			HasSaved=true;
	    	HasChanged=false;
			
		}
    	if(e.getSource()==b2||e.getSource()==mi12)  // 打开
	   	{
	   		
	        String str;
	        int flag=-1;
			if(HasSaved==false&&HasChanged)
			{
				flag=JOptionPane.showConfirmDialog(f,
				"文件文字已改变,是否保存文件?","提示",
				JOptionPane.YES_NO_OPTION);					
			}
		    switch(flag)
			{
				case 0:	
				{
					SaveFile(f);					
			        text.setText("");
			        break;
			    }
			    case 1:	{break;}
		    }
			op.setVisible(true);
	      	try
	     	{
	     		if(op.getFile()!=null)
	     		{
	     			File fl=new File(op.getDirectory(),op.getFile());
	   		        FileReader fr=new FileReader(fl);
	   		        BufferedReader br=new BufferedReader (fr);
	   		        text.setText("");
	   		        while((str=br.readLine())!=null)
	   		        text.append(str+'\n');
	   		        fr.close();
	     		}
	   		
	        } 
	     catch(Exception e1)
	     {
	    	Font font = new Font("Dialog", Font.BOLD, 16);
            UIManager.put("OptionPane.messageFont", font);
            UIManager.put("OptionPane.buttonFont", font);
            JOptionPane.showMessageDialog(f,"打开文件出错","错误",JOptionPane.ERROR_MESSAGE);
	     }
	     HasSaved=true;
		 HasChanged=false;
	  
	
	   }
		if(e.getSource()==b3||e.getSource()==mi13)   // 保存
	   	{
	   	  if(HasSaved==false&&HasChanged)
	   	  {
	      String str;
	      sv.setVisible(true);
	   	  try
	   	  {
	   		File fl=new File(sv.getDirectory(),sv.getFile());
	   		FileWriter fw=new FileWriter(fl);
	   		BufferedWriter bw=new BufferedWriter (fw);
	   		String gt=text.getText();
	   		
	   		bw.write(gt,0,gt.length());
	   		bw.flush();
	   		fw.close();
	   		}
	   		catch(Exception e1)
	   		{
	   		}
	   	   }
	   		HasSaved=true;
			HasChanged=false;
         }
     if(e.getSource()==mi15)               //退出
      {
	  System.exit(0);
	
      }
      if(e.getSource()==mi21||e.getSource()==b4)         //剪切
      {
      	text.cut();	
      }
      if(e.getSource()==mi22||e.getSource()==b5)        //复制
      {
      	text.copy();
      }
      if(e.getSource()==mi23||e.getSource()==b6)    //粘贴
      {
      	text.paste();
      }
      if(e.getSource()==mi31)                   //字体
      {
      	Font cur=text.getFont();
      	 
        int type=Font.BOLD;
        FontSet fs=new FontSet(f,"字体设置",true); 
        int size=fs.font3();
        fs.show(); 
        if(fs.flag)
        { 
        switch(fs.font2())
         { 
            case 0:type=Font.PLAIN;break; 
            case 1:type=Font.ITALIC;break; 
            case 2:type=Font.BOLD; break;  
            case 3:type=Font.BOLD+Font.ITALIC;break; 
         } 
         switch(fs.font3())
         {
         case 0:size=12;break;
         case 1:size=14;break;
         case 2:size=18;break;
         case 3:size=20;break;
         case 4:size=24;break;
         case 5:size=36;break;
         case 6:size=48;break;
         case 7:size=72;break;
         }
       Font f=new Font(fs.font1(),type,size); 
       text.setFont(f); 
       }
       else
       { 
       text.setFont(cur); 
       }
      }
      if(e.getSource()==mi32)          //前景色
      {
        JColorChooser cChooser=new JColorChooser();    
		Color newcolor=cChooser.showDialog(null,"Color Selector" ,null);
		text.setForeground(newcolor);
		HasChanged=true;
		HasSaved=false;
      }
      if(e.getSource()==mi33)            //背景色
      {
      	JColorChooser cChooser=new JColorChooser();
			Color newcolor=cChooser.showDialog(null,"Color Selector" ,null);
			text.setBackground(newcolor);
			HasChanged=true;
		    HasSaved=false;
      }
      
    }
  }
  class WindowClosing extends WindowAdapter
  {
	public void windowClosing(WindowEvent e)
	{
		int flag=-1;
		if(HasSaved==false&&HasChanged)
    	 {
    	      flag=JOptionPane.showConfirmDialog(f,
				"文件文字已改变,是否要保存?","提示",
				JOptionPane.YES_NO_CANCEL_OPTION);
		}
		else
		{
            f.dispose();
            System.exit(0);			
		}
		switch(flag)
		{
			case 0:
			{		
	            SaveFile(f);
	            f.dispose();
	            System.exit(0);
	            break;
	        }
	        case 1:
	        {
	        	f.dispose();
	            System.exit(0);
	        	break;
	        }
 
        }
	}
   }
  class  MyTextListener implements DocumentListener	{
		public void changedUpdate(DocumentEvent e)
	    {
	    	HasChanged=true;
	    	HasSaved=false;
	    }
	    public void insertUpdate(DocumentEvent e)
	    {
	    	HasChanged=true;
	    	HasSaved=false;		
	    }
	    public void removeUpdate(DocumentEvent e)
	    {
	    	HasChanged=true;
	    	HasSaved=false;
	    }
	}
   public class FontSet extends JDialog{           //字体
	
	     private String font1=""; 
	     JLabel txtStr=new JLabel("请选择字体"); 
	     JLabel txt2=new JLabel("请选择字型"); 
	     JLabel txt3=new JLabel("请选择字号");
	     List list1 = new List(5,false); 
	     List list2 = new List(3,false); 
	     List list3 = new List(5,false);
	
	     JButton btnOk=new JButton("确定"); 
	     JButton btnNo=new JButton("撤销"); 
	     FlowLayout flowLayout1=new FlowLayout(); 
	
	     boolean flag=true; 
	      int type;
	      int size; 
	
	     FontSet(Frame frame,String title,boolean modal){ 
	     this.setTitle("字体设置"); 
	     this.setSize(200,410); 
	     this.setModal(true); 
	
	     txtStr.setSize(200,100); 
	
	
	      list1.setSize(100,60); 
	     list1.setMultipleMode(false); 
	
	     this.txt2.setSize(200,100); 
	
	     list2.setSize(100,100); 
	     this.txt3.setSize(200,100);
	     list3.setSize(100,60);
	
	      btnOk.setMnemonic('Y'); 
	      btnOk.setSize(100,20); 
	      btnOk.addActionListener(new btnOk_actionAdapter(this)); 
	
	 
	     btnNo.setMnemonic('N'); 
	     btnNo.setSize(100,20); 
	     btnNo.addActionListener(new btnNo_actionAdapter(this));
	
	     GraphicsEnvironment gl=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
	     String fontName[]=gl.getAvailableFontFamilyNames(); 
	
	
	     for(int i=0;i<fontName.length;i++){ 
	     list1.add(fontName[i]); 
	     } 
	     String fontx[]={"常规","斜体","粗体","粗斜体"}; 
	     for(int i=0;i<fontx.length;i++){ 
	     list2.add(fontx[i]); 
	     } 
	     String h[]=new String[8];
				h[0]="12";
				h[1]="14";
				h[2]="18";
				h[3]="20";
				h[4]="24";
				h[5]="36";
				h[6]="48";
				h[7]="72";
				for(int i=0;i<8;i++)
				{
					list3.add(h[i]);
				}
	    list1.select(fontName.length); 
	    list2.select(0);
	    list3.select(0);
	
	    this.getContentPane().setLayout(flowLayout1); 
	
	    this.getContentPane().add(txtStr,flowLayout1); 
	    this.getContentPane().add(list1,flowLayout1); 
	    this.getContentPane().add(this.txt2,flowLayout1); 
	    this.getContentPane().add(this.list2,flowLayout1);
	    this.getContentPane().add(this.txt3,flowLayout1);
	    this.getContentPane().add(this.list3,flowLayout1);
	    this.getContentPane().add(btnOk,flowLayout1); 
	    this.getContentPane().add(btnNo,flowLayout1); 
	    } 
	    FontSet(){ 
	     this(null,"",false); 
	    } 
	    void btnOk_actionPerformed(ActionEvent e){ 
	    this.flag=true; 
	    this.font1=this.list1.getSelectedItem(); 
	    this.type=this.list2.getSelectedIndex();
	    this.size=this.list3.getSelectedIndex(); 
	    this.dispose(); 
	    } 
	    void btnNo_actionPerformed(ActionEvent e){ 
	    this.flag=false; 
	    this.dispose(); 
	    } 
	
	   public String font1(){ 
	    return this.font1; 
	    } 
	    public int font2(){ 
	
	    return this.type; 
	    } 
	    public int font3()
	    {
	    	return this.size;
	    }
	    }
	    class btnOk_actionAdapter implements java.awt.event.ActionListener{ 
	    FontSet adaptee; 
	    btnOk_actionAdapter(FontSet adaptee){ 
	    this.adaptee=adaptee; 
	    } 
	    public void actionPerformed(ActionEvent e){ 
	    adaptee.btnOk_actionPerformed(e); 
	    } 
	    } 
	
	    class btnNo_actionAdapter implements java.awt.event.ActionListener{ 
	    FontSet adaptee; 
	    btnNo_actionAdapter(FontSet adaptee){ 
	    this.adaptee=adaptee; 
	    } 
	    public void actionPerformed(ActionEvent e){ 
	    adaptee.btnNo_actionPerformed(e); 
	    } 
	   } 
    
  	public	static	void	main(String	arg[])
	{
		edit tm=new	edit();
	}
}

⌨️ 快捷键说明

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