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

📄 homework1.java

📁 java记事本
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.awt.datatransfer.*;
public class homework1 extends Frame implements ActionListener
{
	private MenuItem fileNew = new MenuItem("New");
	private MenuItem fileOpen = new MenuItem("Open");
	private MenuItem fileSave = new MenuItem("Save");
	private MenuItem fileSave1 = new MenuItem("Save as");
	private MenuItem fileExit = new MenuItem("Exit");
	private MenuItem editCut = new MenuItem("Cut");
	private MenuItem editCopy = new MenuItem("Copy");
	private MenuItem editPaste = new MenuItem("Paste");
	private TextArea text = new TextArea();

	Toolkit toolKit=Toolkit.getDefaultToolkit();
	Clipboard clipBoard=toolKit.getSystemClipboard();

	boolean isNewFile=true;
	File currentFile;
	String oldValue;

	String fileName = new String("");

	private int k = 1;
	private int x = 1;

	private class WindowCloser extends WindowAdapter
	{
		public void windowClosing(WindowEvent we)
		{
			System.exit(0);
		}
	}
	public homework1()
	{
		super("NotePad");
		Menu file = new Menu("File");
		Menu edit = new Menu("Edit");
		file.add(fileNew);		fileNew.setEnabled(true);
		file.add(fileOpen);	fileOpen.setEnabled(true);
		file.add(fileSave);		fileSave.setEnabled(true);
		file.add(fileSave1);	fileSave1.setEnabled(true);
		file.addSeparator();
		file.add(fileExit);		fileExit.setEnabled(true);
		edit.add(editCut);	    editCut.setEnabled(true);
		edit.add(editCopy);	editCopy.setEnabled(true);
		edit.add(editPaste);	editPaste.setEnabled(true);
		MenuBar bar = new MenuBar();
		bar.add(file);
		bar.add(edit);
		setMenuBar(bar);
		fileNew.addActionListener(this);
		fileExit.addActionListener(this);
		fileOpen.addActionListener(this);
		fileSave.addActionListener(this);
		fileSave1.addActionListener(this);
		editCut.addActionListener(this);
		editCopy.addActionListener(this);
		editPaste.addActionListener(this);
		setLayout(new BorderLayout());
		add("Center",text);
		addWindowListener(new WindowCloser());
		setSize(400,300);
		setVisible(true);
	}
	public void saveFile(String file)			
	{
		try
		{
			FileWriter fw = new FileWriter(file);
			PrintWriter out = new PrintWriter(new BufferedWriter(fw));
			String str = text.getText();
			out.println(str);
			out.close();
		} 
		catch(IOException ioe)
		{
			System.err.println(ioe);
		}
	}
	public void loadFile(String file)			
	{
		text.setText("");
		try
		{
			BufferedReader in = new BufferedReader(new FileReader(file));
			String line;
			while((line = in.readLine()) != null)
				text.append(line + "\n");
			in.close();
			text.setCaretPosition(0);
		}
		catch (IOException ioe)
		{
			System.err.println(ioe);
		}
	}
	public void actionPerformed(ActionEvent e)
	{
		if (e.getSource() == fileNew)			
		{
			text.requestFocus();
			String currentValue = text.getText();
			boolean isChanged = (currentValue.equals(oldValue))?false:true;
			if (isChanged)
			{
				SaveDlg dlg = new SaveDlg(this,"友情提示:","文件已改变,保存不?",3);
				if (dlg.isOk)
				{
					if (k == 1 && x == 1)
					{
						FileDialog fd = new FileDialog(this,"open a file",FileDialog.SAVE);
						fd.setVisible(true);
						if (fd.getFile() != null)
						{						
							File file = new File(fd.getDirectory() + fd.getFile());
							if (file.exists())
							{
								SaveDlg dlg1 = new SaveDlg(this,"对不起","文件已存在啦",1);
							}
							else
							{
								saveFile(file.toString());
							}
						}
						fd.dispose();
					}
					else
					{
						saveFile(fileName);
					}
				}
				if (dlg.isNo)
				{
					text.setText("");
				}
			}
			else
				text.setText("");
		}

		if (e.getSource() == fileOpen)			
		{
			FileDialog fd = new FileDialog(this,"打开",FileDialog.LOAD);
			fd.setVisible(true);
			if (fd.getFile() != null)
			{
				File file = new File(fd.getDirectory() + fd.getFile());
				if (file.exists())
				{
					loadFile(file.toString());
					fileName = file.toString();
					x = 0;
					oldValue = text.getText();
				}
				else
					text.setText("File name:" + file + "invalid");
			}
			fd.dispose();
		}

		if (e.getSource() == fileSave)		
		{
			if (k == 0 || x == 0)
			{
				oldValue = text.getText();
				saveFile(fileName);
			}
			else
			{
				oldValue = text.getText();
				FileDialog fd = new FileDialog(this,"保存",FileDialog.SAVE);
				fd.setVisible(true);
				File file = new File(fd.getDirectory()+fd.getFile());
				saveFile(file.toString());
				k=0;
				fileName = file.toString();
				fd.dispose();
			}
		}

		if (e.getSource() == fileSave1)			
		{
			FileDialog fd = new FileDialog(this,"另存为",FileDialog.SAVE);
			fd.setVisible(true);
			File file = new File(fd.getDirectory()+fd.getFile());
			saveFile(file.toString());
			fd.dispose();
			fileName = file.toString();
		}

		if (e.getSource() == fileExit)		
		{
			text.requestFocus();
			String currentValue = text.getText();
			boolean isChanged = (currentValue.equals(oldValue))?false:true;
			if (isChanged)
			{
				SaveDlg dlg = new SaveDlg(this,"友情提示:","文件已改变,保存不?",3);
				if (dlg.isOk)
				{
					if (k == 0 || x == 0)
					{
						oldValue = text.getText();
						saveFile(fileName);
					}
					else
					{
						k = 0;
						FileDialog fd = new FileDialog(this,"open a file",FileDialog.SAVE);
						fd.setVisible(true);
						if (fd.getFile() != null)
						{						
							File file = new File(fd.getDirectory() + fd.getFile());
							if (file.exists())
							{
								SaveDlg dlg1 = new SaveDlg(this,"对不起","文件已存在啦",2);
							}
							else
							{
								saveFile(file.toString());
							}
							fd.dispose();
						}
					}
				}
			}
			System.exit(0);
		}

		if(e.getSource() == editCut)			
		{
			text.requestFocus();
			String str=text.getSelectedText();
       		StringSelection selection=new StringSelection(str);
       		clipBoard.setContents(selection,null);
       		text.replaceRange("",text.getSelectionStart(),text.getSelectionEnd());
		}

		if(e.getSource() == editCopy)		
		{
			text.requestFocus();
			String str=text.getSelectedText();
       		StringSelection selection=new StringSelection(str);
       		clipBoard.setContents(selection,null);
		}

		if(e.getSource() == editPaste)			
		{
			text.requestFocus();
			Transferable contents=clipBoard.getContents(this);
		    if(contents==null) return;
		    String str;
		    str="";        
		    try
		    {
				str=(String)contents.getTransferData(DataFlavor.stringFlavor);
		    }
		    catch(Exception exception)
			{
			}
			text.replaceRange(str,text.getSelectionStart(),text.getSelectionEnd());
		}

	}

	public static void main(String[] args)
	{
		homework1 zy = new homework1();
	}
}

class SaveDlg extends Dialog implements ActionListener
{
	private Button okay = new Button("ok");
	private Button cancel = new Button("Cancel");
	private Button no = new Button("no");
	private Label label = new Label("");
	public boolean isOk = false;
	public boolean isNo = false;
	private class WindowCloser extends WindowAdapter
	{
		public void windowClosing(WindowEvent we)
		{
			hide();
		}
	}
	public SaveDlg(Frame parent)
	{
		this(parent,"Fail Dialog","haha",2);
	}
	public SaveDlg(Frame parent, String title, String question, int a)
	{
		super(parent,title,true);
		label.setText(question);
		if (a == 1)
		{
			setup1();
			okay.addActionListener(this);
			cancel.addActionListener(this);
		}
		else
		{
			setup();
			okay.addActionListener(this);
			cancel.addActionListener(this);
			no.addActionListener(this);
		}
		okay.addActionListener(this);
		cancel.addActionListener(this);
		no.addActionListener(this);
		addWindowListener(new WindowCloser());
		setSize(200,100);
		setVisible(true);
	}
	private void setup()
	{
		Panel buttons = new Panel();
		buttons.setLayout(new FlowLayout());
		buttons.add(okay);
		buttons.add(no);
		buttons.add(cancel);
		setLayout(new BorderLayout());
		add("Center",label);
		add("South",buttons);
	}
	private void setup1()
	{
		Panel buttons = new Panel();
		buttons.setLayout(new FlowLayout());
		buttons.add(okay);
		setLayout(new BorderLayout());
		add("Center",label);
		add("South",buttons);
	}
	public void actionPerformed(ActionEvent ae)
	{
		isOk = (ae.getSource() == okay);
		isNo = (ae.getSource() == no);
		setVisible(false);
	}
}

⌨️ 快捷键说明

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