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

📄 mytext.java

📁 Java编写的记事本编辑器源码
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class myText extends JFrame implements ActionListener{	
	JTextArea textArea=new JTextArea();//用来编辑的文本区	
	myText mfm;
	JScrollPane scroll;
	fontChoose fontMenu;
	MenuBar menuBar=new MenuBar();	
	Menu fileMenu=new Menu("文件");
	MenuItem newItem=new MenuItem("新建");
	MenuItem openItem=new MenuItem("打开");
	MenuItem saveItem=new MenuItem("保存");
	MenuItem saveAsItem=new MenuItem("另存为");
	MenuItem exitItem=new MenuItem("退出");	
	Menu editMenu=new Menu("编辑");
	MenuItem replaceItem=new MenuItem("替换");
	MenuItem selectItem=new MenuItem("全选");
	MenuItem copyItem=new MenuItem("复制");
	MenuItem cutItem=new MenuItem("剪切");
	MenuItem pasteItem=new MenuItem("粘贴");	
	Menu geshiItem=new Menu("格式");
	MenuItem fontItem=new MenuItem("字体");
	MenuItem colorItem=new MenuItem("颜色");		
	Menu aboutMenu=new Menu("帮助");
	MenuItem helpItem=new MenuItem("关于。。。。");
	
	String fileName="";//默认文件名空
	Toolkit toolKit=Toolkit.getDefaultToolkit();
	Clipboard clipBoard=toolKit.getSystemClipboard();//剪贴板对象
	/*打开文件对话框和保存文件对话框*/
	private FileDialog openFileDialog=new FileDialog(this,"Open File",FileDialog.LOAD);
	private FileDialog saveAs=new FileDialog(this, "Save File As", FileDialog.SAVE);		
	public myText(){
		setTitle("我的记事本!");
		setFont(new Font("Times New Roman",Font.PLAIN,12));
		setBackground(Color.white);
		setSize(500,400);				
		/*在窗口中添加菜单栏*/
		fileMenu.add(newItem);
		fileMenu.add(openItem);		
		fileMenu.add(saveItem);
		fileMenu.add(saveAsItem);		
		fileMenu.add(exitItem);		
		editMenu.add(replaceItem);
		editMenu.add(selectItem);		
		editMenu.add(copyItem);
		editMenu.add(cutItem);
		editMenu.add(pasteItem);		
		geshiItem.add(fontItem);
		geshiItem.add(colorItem);		
		aboutMenu.add(helpItem);		
		menuBar.add(fileMenu);
		menuBar.add(editMenu);
		menuBar.add(geshiItem);
		menuBar.add(aboutMenu);
		setMenuBar(menuBar);
		add(textArea);		
		addWindowListener(new WindowAdapter(){//指定窗口退出方式
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		/*注册各个菜单的事件监听器*/
		newItem.addActionListener(this);
		openItem.addActionListener(this);
		saveItem.addActionListener(this);
		saveAsItem.addActionListener(this);
		exitItem.addActionListener(this);
		replaceItem.addActionListener(this);
		selectItem.addActionListener(this);
		copyItem.addActionListener(this);
		cutItem.addActionListener(this);
		pasteItem.addActionListener(this);		
		fontItem.addActionListener(this);
		colorItem.addActionListener(this);				
		helpItem.addActionListener(this);
		replaceItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				JPanel swapPanel = new JPanel();
				 JLabel lookupLabel = new JLabel("要替换的内容");
				 JTextField inputText = new JTextField(10);
				 JLabel swapLabel = new JLabel("替换为:");
				 JTextField changetoText = new JTextField(10);
				 swapPanel.add( lookupLabel );
				 swapPanel.add( inputText );
				 swapPanel.add( swapLabel );
				 swapPanel.add( changetoText );
				 JOptionPane.showMessageDialog(null,swapPanel);
				 String text = textArea.getText();
				 String changeText = text.replace(inputText.getText(),changetoText.getText());
				 textArea.setText(changeText);
			}
		});			
		helpItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				JOptionPane.showMessageDialog(null,"网络B061彭卫","200607024119",JOptionPane.INFORMATION_MESSAGE );
			}
		});
	}				
	public void actionPerformed(ActionEvent e){
		Object eventSource=e.getSource();//利用事件源判断被单击的菜单项
		if(eventSource==newItem){
			textArea.setText("");//新建时清空文本区			
		}else if(eventSource==openItem){			
			openFileDialog.show();//显示打开文件对话框
			fileName=openFileDialog.getDirectory() +  openFileDialog.getFile();
			if(fileName!=null)
				readFile(fileName);			
		}else if(eventSource==saveItem){									
				saveAs.show();
				fileName = saveAs.getDirectory()+saveAs.getFile();
				if(fileName !=null)
					writeFile(fileName);							
		}else if(eventSource==saveAsItem){			
			saveAs.show();//显示保存文件对话框
			fileName = saveAs.getDirectory()+saveAs.getFile();
			if(fileName!=null)	
				writeFile(fileName);
		}else if(eventSource==selectItem){
			textArea.selectAll();			
		}else if(eventSource==copyItem){
			String text=textArea.getSelectedText();
			StringSelection selection=new StringSelection(text);
			clipBoard.setContents(selection, null);
		}else if(eventSource==cutItem){
			String text=textArea.getSelectedText();
			StringSelection selection=new StringSelection(text);
			clipBoard.setContents(selection, null);
			/*剪切时用空串代替被选的字符*/
			textArea.replaceRange("", textArea.getSelectionStart(), textArea.getSelectionEnd());			
		}else if(eventSource==pasteItem){
			Transferable contents=clipBoard.getContents(this);
			if(contents==null) return;
			String text;
			text="";
			try{
				text=(String)contents.getTransferData(DataFlavor.stringFlavor);				
			}catch(Exception exception){				
			}
			textArea.replaceRange(text, textArea.getSelectionStart(), textArea.getSelectionEnd());			
		}else if(eventSource==exitItem){
			int conform=JOptionPane.showConfirmDialog(null, "文件已修改,要保存修改吗?",
					"文件保存?", JOptionPane.YES_NO_CANCEL_OPTION);
			if(conform==JOptionPane.YES_OPTION){
				if(fileName!=null){
					System.exit(0);
				}
			}else if(conform==JOptionPane.NO_OPTION){
				System.exit(0);
			}			
		}else if(eventSource==fontItem){
			setFont();
		}else if(eventSource==colorItem){
			setcolor();
		}
	}
public void readFile(String fileName){//读文件
	try{
		File file=new File(fileName);
		FileReader readIn=new FileReader(file);
		int size=(int)file.length();
		int charsRead=0;
		char[] content=new char[size];
		while(readIn.ready())
			charsRead += readIn.read(content,charsRead,size-charsRead);
		readIn.close();
		textArea.setText(new String(content,0,charsRead));
	}catch(IOException e){
		System.out.println("error opening file");		
	}
}
public void writeFile(String fileName){
	try{
		File file=new File(fileName);
		FileWriter writeOut=new FileWriter(file);
		writeOut.write(textArea.getText());
		writeOut.close();
	}catch(IOException e){
		System.out.println("error writeing file");
	}
}
public void rewriteFile(String fileName){
	String s=textArea.getText();
	try{
		File f = new File( fileName );//新建文件     	     
	    BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中
	    bw.write(s , 0 , s.length());
	    bw.close();
	}
	catch(IOException ie_){
		System.out.println(" IO error");
	    System.exit(0);		
	}
}
public void setcolor(){
	Color c=JColorChooser.showDialog(null, "颜色", textArea.getForeground());
	if(c!=null)
	textArea.setForeground(c);
}
private  void setFont() {
	fontMenu=new fontChoose(this);
}
public void setfont1(){
	Font f=fontMenu.getF();
	textArea.setFont(f);
	fontMenu.dispose();
}
public static void main(String args[]){
	Frame frame=new myText();	
	frame.show();	}
}


⌨️ 快捷键说明

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