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

📄 edittext.java

📁 用java.swing写的一个记事本程序
💻 JAVA
字号:
package com;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.filechooser.*;


public class EditText 
{
	 
	public static void main(String[] args)
	{
		Initialization.initialization(frame,textArea);
	}
	
	static JFrame frame =new JFrame("Text");
	static JTextArea textArea=new JTextArea();
	static  JPopupMenu popupMenu=new JPopupMenu();
	static boolean  wetherSaved=false;
}

class Initialization
{
	static JMenuItem itemSave=new JMenuItem("Save");
	public static  void initialization(JFrame frame,JTextArea textArea)
	{
		frame.setSize(600,400);
		frame.setBackground(Color.gray);
		frame.setLocation(200,200);
		frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
		frame.addWindowListener((WindowListener)
				ExitWindowListener.getExitWindowListener());		
		
		JMenuBar menuBar=new JMenuBar();
		
		frame.setJMenuBar(menuBar);
		JScrollPane scrollPane=new JScrollPane(textArea);
		frame.add(scrollPane);
		
		JMenu menuFile=new JMenu("File");
		JMenu menuEdit=new JMenu("Edit");
		JMenu menuFormat=new JMenu("Format");
		JMenu menuView=new JMenu("View");
		JMenu menuHelp=new JMenu("Help");
		
		menuBar.add(menuFile);
		menuBar.add(menuEdit);
		menuBar.add(menuFormat);
		menuBar.add(menuView);
		menuBar.add(menuHelp);
		
		JMenuItem itemNew=new JMenuItem("New");
			itemNew.addActionListener(new NewActionListener());
		JMenuItem itemOpen=new JMenuItem("Open");
			itemOpen.addActionListener(new OpenActionListener());
		
			itemSave.addActionListener(new SaveActionListener());
				
		JMenuItem itemSaveAs=new JMenuItem("Save as");
			itemSaveAs.addActionListener(new SaveAsActionListener());
		
		
		JMenuItem itemExit=new JMenuItem("Exit ");
			itemExit.addActionListener(new ExitActionListener());			
		JMenuItem itemCopy=new JMenuItem("Copy ");
			itemCopy.addActionListener(new CopyActionListener());
		JMenuItem itemCut=new JMenuItem("Cut ");
			itemCut.addActionListener(new CutActionListener());
		JMenuItem itemPase=new JMenuItem("Pase ");
			itemPase.addActionListener(new PaseActionListener());
		JMenuItem itemDelete=new JMenuItem("Delete ");
			itemDelete.addActionListener(new DeleteActionListener());
		JSeparator separator3=new JSeparator();
		JMenuItem itemSelect=new JMenuItem("Select All ");
			itemSelect.addActionListener(new SelectActionListener());
		JMenuItem itemDateAndHour=new JMenuItem("Date\\Hour");
			itemDateAndHour.addActionListener(new DateAndHourActionListener());
		JMenuItem itemFont=new JMenuItem("Font");
			//itemFont.addActionListener(new FontActionListener());
		JMenuItem itemHelp=new JMenuItem("Help");
		
		JMenuItem itemAbout=new JMenuItem("About Text");
			itemAbout.addActionListener(new AboutActionListener());
		
		menuFile.add(itemNew);
		menuFile.add(itemOpen);
		menuFile.add(itemSave);
		menuFile.add(itemSaveAs);
		
		JSeparator separator=new JSeparator();
		menuFile.add(separator);
		
		menuFile.add(itemExit);
		menuEdit.add(itemCopy);
		menuEdit.add(itemCut);
		menuEdit.add(itemPase);
		menuEdit.add(itemDelete);
		menuEdit.add(separator3);
		menuEdit.add(itemSelect);
		menuEdit.add(itemDateAndHour);
		menuFormat.add(itemFont);
		menuHelp.add(itemHelp);
		
		JSeparator separatorHelp=new JSeparator();
		menuHelp.add(separatorHelp);
		
		menuHelp.add(itemAbout);
		
		//EditText.frame.getContentPane().setLayout(new FlowLayout());
		//EditText.frame.getContentPane().add(EditText.popupMenu);
		//注意正确的添加弹出菜单的方法
			EditText.textArea.addMouseListener(new popupEvent());
		EditText.popupMenu.pack();
		JMenuItem popupCopy=new JMenuItem("Copy");
		JMenuItem popupCut=new JMenuItem("Cut");
		JMenuItem popupPase=new JMenuItem("Pase");
		JMenuItem popupDelete=new JMenuItem("Delete");
		JSeparator separator2=new JSeparator();
		JMenuItem popupSelectAll=new JMenuItem("Select All");
		
		EditText.popupMenu.add(popupCopy);
			popupCopy.addActionListener(new CopyActionListener());
		EditText.popupMenu.add(popupCut);
			popupCut.addActionListener(new CutActionListener());
		EditText.popupMenu.add(popupPase);
			popupPase.addActionListener(new PaseActionListener());
		EditText.popupMenu.add(popupDelete);
			popupDelete.addActionListener(new DeleteActionListener());
		EditText.popupMenu.add(separator2);
		EditText.popupMenu.add(popupSelectAll);
			popupSelectAll.addActionListener(new SelectActionListener());
		
		frame.setVisible(true);
	}
}
//处理窗体的关闭事件
class ExitWindowListener extends WindowAdapter
{
	public void windowClosing(WindowEvent e)
	{
		if(EditText.wetherSaved /*||(EditText.textArea.getColumns()==0)*/)
		{
			System.exit(0);
		}
		else
		{
			try
			{
				String str="Please save the text!";
				final JDialog msgDialog=new JDialog(EditText.frame,str,false);
				msgDialog.setSize(350, 150);
				Point msgDialogPoint=new Point();
				EditText.frame.getLocation(msgDialogPoint);
				msgDialog.setLocation(msgDialogPoint.x+100,msgDialogPoint.y+100);
				msgDialog.setTitle("The text is not saved!");

				msgDialog.getContentPane().setLayout(new GridLayout(2,1));
				JPanel panel1=new JPanel(new FlowLayout());
				JPanel panel2=new JPanel(new FlowLayout());
				msgDialog.add(panel1);
				msgDialog.add(panel2);
				String strCaution="The text is not saved,would you want to save it?";
				JLabel cautionLabel=new JLabel(strCaution);
				panel1.add(cautionLabel);
				JButton cautionBtn1=new JButton("ok");
					cautionBtn1.addMouseListener(new MouseListener()
					{
						public void mouseClicked(MouseEvent e) 
						{
							msgDialog.setVisible(false);
							SaveActionListener save=new SaveActionListener();
							save.actionPerformed(SaveActionListener.getActionEvent());
							System.exit(0);
						}
						public void mouseEntered(MouseEvent e) {}
						public void mouseExited(MouseEvent e) {}
						public void mousePressed(MouseEvent e) {}
						public void mouseReleased(MouseEvent e) {}
					});
				JButton cautionBtn2=new JButton("cancel");
					cautionBtn2.addMouseListener(new MouseListener()
					{
						public void mouseClicked(MouseEvent e) 
						{
							System.exit(0);
						}
						public void mouseEntered(MouseEvent e) {}
						public void mouseExited(MouseEvent e) {}
						public void mousePressed(MouseEvent e) {}
						public void mouseReleased(MouseEvent e) {}
					});
				panel2.add(cautionBtn1);
				panel2.add(cautionBtn2);
				
				msgDialog.setVisible(true);
			
			}
			catch(Exception eexx)
			{
				eexx.getStackTrace();
			}
		}
	}
	public static ExitWindowListener getExitWindowListener()
	{
		return new ExitWindowListener();
	}
}/**/
//File菜单下New事件
class NewActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.setText(new String());
		EditText.wetherSaved=false;
	}
}
//File菜单下Exit事件
class ExitActionListener implements ActionListener
{
	static ActionEvent actionEvent=new ActionEvent(Initialization.itemSave,1,null);
	public static ActionEvent getActionEvent()
	{
		return actionEvent;
	}
	public void actionPerformed(ActionEvent e)
	{
		if((EditText.textArea.getText()=="") /*|| (EditText.wetherSaved==true)*/)
		{
			System.exit(0);
		}
		else
		{
			try
			{
				String str="Please save the text!";
				final JDialog msgDialog=new JDialog(EditText.frame,str,false);
				msgDialog.setSize(350, 150);
				
				Point msgDialogPoint=new Point();
				EditText.frame.getLocation(msgDialogPoint);
				msgDialog.setLocation(msgDialogPoint.x+100,msgDialogPoint.y+100);
				
				msgDialog.setTitle("The text is not saved!");

				msgDialog.getContentPane().setLayout(new GridLayout(2,1));
				JPanel panel1=new JPanel(new FlowLayout());
				JPanel panel2=new JPanel(new FlowLayout());
				msgDialog.add(panel1);
				msgDialog.add(panel2);
				String strCaution="The text is not saved,would you want to save it?";
				JLabel cautionLabel=new JLabel(strCaution);
				panel1.add(cautionLabel);
				JButton cautionBtn1=new JButton("ok");
					cautionBtn1.addMouseListener(new MouseListener()
					{
						public void mouseClicked(MouseEvent e) 
						{
							msgDialog.setVisible(false);
							SaveActionListener save=new SaveActionListener();
							save.actionPerformed(SaveActionListener.getActionEvent());
							System.exit(0);
						}
						public void mouseEntered(MouseEvent e) {}
						public void mouseExited(MouseEvent e) {}
						public void mousePressed(MouseEvent e) {}
						public void mouseReleased(MouseEvent e) {}
					});
				JButton cautionBtn2=new JButton("cancel");
					cautionBtn2.addMouseListener(new MouseListener()
					{
						public void mouseClicked(MouseEvent e) 
						{
							System.exit(0);
						}
						public void mouseEntered(MouseEvent e) {}
						public void mouseExited(MouseEvent e) {}
						public void mousePressed(MouseEvent e) {}
						public void mouseReleased(MouseEvent e) {}
					});
				panel2.add(cautionBtn1);
				panel2.add(cautionBtn2);
				
				msgDialog.setVisible(true);
			
			}
			catch(Exception exxx)
			{
				exxx.getStackTrace();
			}
		}
	}
}
//File菜单下Open事件
class OpenActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e) 
	{
		FileDialog fileOpen=
				new FileDialog(EditText.frame,"Open",FileDialog.LOAD);
		fileOpen.setVisible(true);
		
		//FileNameExtensionFilter filter=new FileNameExtensionFilter("Text file","txt");
		
		String fileName=fileOpen.getDirectory()+fileOpen.getFile();
		if(fileName!=null)
		{
			try
			{
				FileInputStream fileinput=new FileInputStream(fileName);
				byte []  buf =new byte [10*1024];
				int len=fileinput.read(buf);
				EditText.textArea.setText(new String());
				EditText.textArea.append(new String(buf,0,len));
				fileinput.close();
			}
			catch (IOException ex)
			{
				ex.printStackTrace();
			}
		}
	}
}

//File菜单下Save事件
class SaveActionListener implements ActionListener
{
	static ActionEvent actionEvent=new ActionEvent(Initialization.itemSave,1,null);
	public static ActionEvent getActionEvent()
	{
		return actionEvent;
	}
	public void actionPerformed(ActionEvent ex)
	{
		JFileChooser chooser = new JFileChooser( );
	    FileNameExtensionFilter filter = new FileNameExtensionFilter(
	        ".txt", "txt");
	    chooser.setFileFilter(filter);
	    
	    int returnVal = chooser.showSaveDialog(EditText.frame);
	    if(returnVal == JFileChooser.APPROVE_OPTION) 
	    {
	    	try
	    	{
	    		String strPath=chooser.getCurrentDirectory().toString()
	    				+File.separator+chooser.getSelectedFile().getName()
	    				+chooser.getFileFilter().getDescription();
	    				//+File.separator+chooser.getSelectedFile().list().toString();
	    		//System.out.println(strPath);
	    		FileOutputStream output=new FileOutputStream(strPath);
	    		byte [] fileContent=new byte[10*1024];
	    		fileContent=EditText.textArea.getText().getBytes();
	    		output.write(fileContent);
	    		output.close();
	    	}
	    	catch(Exception e)
	    	{
	    		e.getStackTrace();
	    	}
	    	EditText.wetherSaved=true;
	    }
		//用FileDialog
	    /*FileDialog fileSave=
		new FileDialog(EditText.frame,"Save text",FileDialog.SAVE);*/
		//fileSave.setVisible(true);
		/*try
		{
			String fileName2=fileSave.getDirectory()+fileSave.getFile();
			FileOutputStream fileOutput=new FileOutputStream(fileName2);
			
			byte [] fileContent =new byte[10*1024];
			fileContent= EditText.textArea.getText().getBytes();
			fileOutput.write(fileContent);
			fileOutput.close();
			
			EditText.wetherSaved=true;
		}
		catch(Exception exx)
		{
			exx.getStackTrace();
		}*/
   }
}

//File菜单下Save as
class SaveAsActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		
		FileDialog fileSaveAs=new FileDialog(EditText.frame,"Save As:",FileDialog.SAVE);
		fileSaveAs.setVisible(true);
		String fileName=fileSaveAs.getDirectory()+fileSaveAs.getFile();
		try
		{
			FileOutputStream output=new FileOutputStream(fileName);
			byte [] buf=new byte[10*1024];
			buf=EditText.textArea.getText().getBytes();
			output.write(buf);
			EditText.wetherSaved=true;
		}
		catch(Exception ee)
		{
			ee.getStackTrace();
		}
	}
}
//Edit菜单下Copy事件
class CopyActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.copy();
	}
}
//Edit: Cut
class CutActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.cut();
	}
}
//Edit :Pase item.
class PaseActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.paste();
	}
}

//Edit:Delete
class DeleteActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.replaceSelection("");
	}
}
//Edit: Select item.
class SelectActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		EditText.textArea.selectAll();
	}
}
//Edit:Date\Hour
class DateAndHourActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		//error sentence:Calendar calendar=
				//new Calendar(TimeZone.getDefault(),Locale.CHINA);
		Calendar calendar=Calendar.getInstance();
		String str1=String.valueOf(calendar.get(Calendar.YEAR));
		String str2=String.valueOf(calendar.get(Calendar.MONTH));
		String str3=String.valueOf(calendar.get(Calendar.DATE));
		String str4=String.valueOf(calendar.get(Calendar.HOUR));
		String str5=String.valueOf(calendar.get(Calendar.MINUTE));
		String date=str1+"年"+ str2+"月"+str3+"日";
		String hour=str4+":"+str5;
		
		EditText.textArea.insert(date+hour,EditText.textArea.getCaretPosition());
		
	}
}
//Format: Font 
/*class FontActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		Font font=new Font(Font.DIALOG,Font.PLAIN,50);
		font.
		 
	}
}*/

//Help: About Text
class AboutActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		//JOptionPane aboutDialog=new JOptionPane();
		JOptionPane.showMessageDialog(EditText.frame,"Java text 1.0\n copyright:",
						"About Text",JOptionPane.INFORMATION_MESSAGE);
	}
}
//Popup Menu
class popupEvent implements MouseListener
{
	 public void mouseClicked(MouseEvent e){}
	 public void mouseEntered(MouseEvent e){} 
	 public void mouseExited(MouseEvent e) {}
	 public void mousePressed(MouseEvent e) {}
	 public void mouseReleased(MouseEvent e)
	 {
		 if(e.isPopupTrigger())
		 {
			 EditText.popupMenu.show(e.getComponent(),e.getX(),e.getY());
		 }
	 }
}









⌨️ 快捷键说明

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