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

📄 txtedit1.java

📁 一个小的文件编辑器
💻 JAVA
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class txtedit1
{
	public static void main(String args[])
	{
		MySimpleTextEditor editor=new MySimpleTextEditor();
		editor.setSize(300,200);
		editor.setVisible(true);
		editor.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent we)
			{System.exit(0);}
		});
	}
}
class MySimpleTextEditor extends Frame implements ActionListener
{
	private MenuBar myBar=new MenuBar();
	private Menu fileMenu,editMenu,cutsMenu,fonteditMenu,name,style,size;
	private MenuItem cutItem,copyItem,pasteItem,selectAllItem,plainItem,boldItem,italicItem;
	private MenuItem recentcutItem;
	private MenuItem quitItem,openItem,saveItem;
	private TextArea mainWorkWindow=new TextArea(10,15);//文本区域
	private String placeHolder=" ";
	private Vector recentCuts=new Vector();
	//int fontsize=14;
	//int fontstyle=Font.PLAIN;
	//String fontname="Dialog";
	String fontname[]={"Serif","Dialog","Mono"};
	//

	public MySimpleTextEditor()
	{

		super("我的文本编辑器");
		setLayout(new BorderLayout());
		add("Center",mainWorkWindow);
		setMenuBar(myBar);//必要的
		initFileMenu();
		initEditMenu();
		initFontMenu();



	}
	/*public void paint(Graphics g)
	{
		g.setFont(new Font(fontname,fontstyle,fontsize));
	}*/

	private void initEditMenu()
	{
		editMenu=new Menu("编辑");
		myBar.add(editMenu);
		cutItem=new Menu("剪切");
		cutItem.addActionListener(this);
		editMenu.add(cutItem);
		copyItem=new MenuItem("复制");
		copyItem.addActionListener(this);
		editMenu.add(copyItem);
		pasteItem=new MenuItem("粘贴");
		pasteItem.addActionListener(this);
		editMenu.add(pasteItem);
		editMenu.addSeparator();
		selectAllItem=new MenuItem("全选");
		selectAllItem.addActionListener(this);
		editMenu.add(selectAllItem);
		editMenu.addSeparator();
		cutsMenu=new Menu("剪贴板");
		editMenu.add(cutsMenu);
	}



	//初始化编辑菜单


	private void initFileMenu()
	{
		fileMenu=new Menu("文件");
		myBar.add(fileMenu);
		openItem=new MenuItem("打开");
		openItem.addActionListener(this);
		openItem.setEnabled(true);
		fileMenu.add(openItem);
		saveItem=new MenuItem("保存");
		saveItem.setEnabled(true);
		fileMenu.add(saveItem);
		fileMenu.addSeparator();
		quitItem=new MenuItem("退出");
		quitItem.addActionListener(this);
		fileMenu.add(quitItem);
	}

	//初始化文件菜单
	private void initFontMenu()
	{
		fonteditMenu=new Menu("字体");
		myBar.add(fonteditMenu);
		plainItem=new MenuItem("普通");
		plainItem.addActionListener(this);
		plainItem.setEnabled(true);
		fonteditMenu.add(plainItem);

		boldItem=new MenuItem("加粗");
		boldItem.addActionListener(this);
		boldItem.setEnabled(true);
		fonteditMenu.add(boldItem);

		italicItem=new MenuItem("斜体");
		italicItem.addActionListener(this);
		italicItem.setEnabled(true);
		fonteditMenu.add(italicItem);



	}


	public void actionPerformed(ActionEvent e)
	{
		if(!(e.getSource()instanceof MenuItem))
		return;
		//不是菜单项返回空

		MenuItem m=(MenuItem)e.getSource();//确定是菜单项

		if(m==quitItem)
		{
			dispose();
			System.exit(0);
		}//退出菜单

		else if(m==cutItem)
		{
			placeHolder=mainWorkWindow.getSelectedText();
			mainWorkWindow.replaceRange("",mainWorkWindow.getSelectionStart(),
			mainWorkWindow.getSelectionEnd());
			addRecentCut(placeHolder);
		}//剪切菜单


		else if(m==copyItem)
		{
			placeHolder=mainWorkWindow.getSelectedText();
		}

		else if(m==pasteItem)
		{
			mainWorkWindow.insert(placeHolder,mainWorkWindow.getCaretPosition());
		}
		//insert()
		else if(m==selectAllItem)
		{
			mainWorkWindow.selectAll();
		}

		else if(m==openItem)
		{
			Frame f=new Frame("FileDialog");//此语句
			FileDialog d;
			d=new FileDialog(f,"FileDialog");
			d.setVisible(true);
			String filename=d.getFile();//获取文件名
			File openf=new File(filename);
			String s="";
			try{
				RandomAccessFile fr=new RandomAccessFile(openf,"r");
				char ch;

				while((ch=fr.readChar())!=-1)
				{s=s+ch;
				}
				//把文件内容读出
				fr.close();
				}catch(Exception er){}
				mainWorkWindow.setText(s);//文件内容写入
			}
		else if(m==plainItem)
		{
			fontstyle=Font.PLAIN;
			mainWorkWindow.setFont(new Font(fontname,fontstyle,fontsize));
			repaint();
		}
		else if(m==italicItem)
		{
			fontstyle=Font.ITALIC;
			mainWorkWindow.setFont(new Font(fontname,fontstyle,fontsize));
			repaint();
		}

		else if(m==saveItem)
		{
			Frame f=new Frame("FileDialog");
			FileDialog d;
			d=new FileDialog(f,"FileDialog");
			d.setVisible(true);
			String filename=d.getFile();
			File openf=new File(filename);
			try{
				RandomAccessFile fw=new RandomAccessFile(openf,"rw");
				String s=mainWorkWindow.getText();
				fw.writeChars(s);
				fw.close();
				}catch(Exception er){}

		}	
		}

		private void addRecentCut(String cut)
		{
			recentCuts.insertElementAt(cut,0);
			cutsMenu.removeAll();
			for(int i=0;i<recentCuts.size();i++)
			{
				MenuItem item=new MenuItem((String)recentCuts.elementAt(i));
				cutsMenu.add(item);
			}
		}

}

⌨️ 快捷键说明

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