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

📄 kodit.java

📁 一个小的文本编辑器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				editArea.copy();
				String selected=editArea.getSelectedText();
				if(selected.equals(""))return;
				StringSelection clipString=new StringSelection(selected);
				clipBoard.setContents(clipString,clipString);
			}
		});
		undoItem.setEnabled(false);
		ImageIcon saveIcon=new ImageIcon("ICON/save.gif");
		JButton saveButton=new JButton(saveIcon);
		saveButton.addActionListener(new ActionListener()
		{  //addItemActionListener
			public void actionPerformed(ActionEvent e)
			{
				save();
				redoItem.setEnabled(false);
				undoItem.setEnabled(false);
			}
		});
		toolBar.add(newButton);
		toolBar.add(saveButton);
		toolBar.addSeparator();
		toolBar.add(copyButton);
		JMenuBar menuBar=new JMenuBar();
		JMenu fileMenu=new JMenu("File");
		JMenuItem newItem=new JMenuItem("New");
		newItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e){
				saveOnNew();
		        editArea.setText("");
		        Kodit.this.setTitle("Untitled1.txt");
		        currentFile=new File("Untitled1.txt");
			}
		});
		fileMenu.add(newItem);
		JMenuItem openItem=new JMenuItem("open");
		openItem.addActionListener(new ActionListener()
		{                  //openItem ActionListener
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser fileChooser=new JFileChooser(".");
				fileChooser.addChoosableFileFilter(new FileFilterImpl(new 	String[]{"txt","xml","html"},"Text Files(*.txt,*.xml,*.html)"));
				fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"h","c","java","cpp"},"C/C++/java(*.c,*.cpp,*.h)"));
				fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"ini","bat","log"},"Other(*.bat,*.ini,*.log)"));
				int r=fileChooser.showOpenDialog(Kodit.this);
				if(r==JFileChooser.APPROVE_OPTION)
				{
					File file=fileChooser.getSelectedFile();
					currentFile=file;
					Kodit.this.setTitle(file.getName());
					currentFile=file;
					try{
						BufferedReader br=new BufferedReader(new 							InputStreamReader(new FileInputStream(file)));
						String s="";
						editArea.setText(s);
						while((s=br.readLine())!=null)
						{
							editArea.append(s+"\n");
						}
						br.close();
					}catch(IOException except){
						except.printStackTrace();
					}
				}
			}
		});
		fileMenu.add(openItem);
		
		JMenuItem saveItem=new JMenuItem("save");
		saveItem.addActionListener(new ActionListener(){  //addItemActionListener
			public void actionPerformed(ActionEvent e)
			{
				save();
				redoItem.setEnabled(false);
				undoItem.setEnabled(false);
			}
		});
		fileMenu.add(saveItem);
		
		JMenuItem saveAsItem=new JMenuItem("save as");   //save as
		saveAsItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				saveAs();
			}
		});
		fileMenu.add(saveAsItem);
		fileMenu.addSeparator();
		JMenuItem exitItem=new JMenuItem("exit");
		exitItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveOnExit();
			}
		});
		fileMenu.add(exitItem);
		menuBar.add(fileMenu);
		
		JMenu editMenu=new JMenu("Edit");
		undoItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					undoManager.undo();
				}catch(Exception except){
					except.printStackTrace();
				}
				updateMenu(undoItem,redoItem);
			}
		});
		undoItem.setEnabled(false);
		redoItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					undoManager.redo();
				}catch(Exception except){
					except.printStackTrace();
				}
				updateMenu(undoItem,redoItem);
			}
		});
		redoItem.setEnabled(false);
		editArea.getDocument().addUndoableEditListener(new UndoableEditListener(){
			public void undoableEditHappened(UndoableEditEvent e)
			{
				undoManager.addEdit(e.getEdit());
				updateMenu(undoItem,redoItem);
			}
		});
		JMenuItem cutItem=new JMenuItem("cut");
		ImageIcon pasteIcon=new ImageIcon("ICON/paste.gif");
		JButton pasteButton=new JButton(pasteIcon);
		pasteButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Transferable clipData=clipBoard.getContents(Kodit.this);
				try{
					String clipString=(String)clipData.getTransferData(DataFlavor.stringFlavor);
					editArea.replaceRange(clipString,editArea.getSelectionStart(),editArea.getSelectionEnd());
				}catch(Exception except){
					except.printStackTrace();
				}
			}
		});
		toolBar.add(pasteButton);
		ImageIcon deleteIcon=new ImageIcon("ICON/delete.gif");
		JButton deleteButton=new JButton(deleteIcon);
		deleteButton.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String delString=editArea.getSelectedText();
				if(delString.equals(""))return;
				editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
			}
		});
		toolBar.add(deleteButton);
		JMenuItem copyItem=new JMenuItem("copy");
		JMenuItem pasteItem=new JMenuItem("paste"); 
		cutItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				String selected=editArea.getSelectedText();
				if(selected==null)
				return;
				StringSelection clipString=new StringSelection(selected);
				clipBoard.setContents(clipString,clipString);
//				editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
			}
		});
		copyItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				editArea.copy();
				String selected=editArea.getSelectedText();
				if(selected.equals(""))return;
				StringSelection clipString=new StringSelection(selected);
				clipBoard.setContents(clipString,clipString);
			}
		});
		pasteItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Transferable clipData=clipBoard.getContents(Kodit.this);
				try{
					String clipString=(String)clipData.getTransferData(DataFlavor.stringFlavor);
					editArea.replaceRange(clipString,editArea.getSelectionStart(),editArea.getSelectionEnd());
				}catch(Exception except){
					except.printStackTrace();
				}
			}
		});
		JMenuItem deleteItem=new JMenuItem("delete");
		deleteItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String delString=editArea.getSelectedText();
				if(delString.equals(""))return;
				editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
			}
		});
		editMenu.add(undoItem);
		editMenu.add(redoItem);
		editMenu.addSeparator();
		editMenu.add(copyItem);
		editMenu.add(pasteItem);
		editMenu.add(cutItem);
		editMenu.add(deleteItem);
		JMenu configMenu=new JMenu("Tool");
		JMenuItem lowItem=new JMenuItem("LowerCase");
		lowItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String lowString=editArea.getSelectedText();
				if(lowString.equals(""))return;
				lowString=lowString.toLowerCase();
				editArea.replaceRange(lowString,editArea.getSelectionStart(),editArea.getSelectionEnd());
			}
		});
		
		JMenuItem selectAllItem=new JMenuItem("SelectAll");
		selectAllItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				editArea.selectAll();
			}
		});
		editMenu.addSeparator();
		editMenu.add(selectAllItem);
		menuBar.add(editMenu);
		JMenuItem upItem=new JMenuItem("UpperCase");
		upItem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String lowString=editArea.getSelectedText();
				if(lowString.equals(""))return;
				lowString=lowString.toUpperCase();
				editArea.replaceRange(lowString,editArea.getSelectionStart(),editArea.getSelectionEnd());
			}
		});
		
		JMenuItem fontItem=new JMenuItem("font");
		fontItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				FontChooser fontChooser=new FontChooser(Kodit.this);
				fontChooser.show();
				SimpleAttributeSet attributes=fontChooser.getAttributes();
				if(attributes!=null){
					boolean bold=StyleConstants.isBold(attributes);
					boolean italic=StyleConstants.isItalic(attributes);
					String fontName=StyleConstants.getFontFamily(attributes);
					int size=StyleConstants.getFontSize(attributes);
					Color color=StyleConstants.getForeground(attributes);
					editArea.setFont(new Font(fontName,(bold?Font.BOLD:0)+(italic?Font.ITALIC:0),size));
					editArea.setForeground(color);
				}
			}
		});
		configMenu.add(upItem);
		configMenu.add(lowItem);
		configMenu.addSeparator();
		configMenu.add(fontItem);
		menuBar.add(configMenu);
		JMenu help=new JMenu("help");
		JMenuItem about=new JMenuItem("about");
		about.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				JOptionPane.showMessageDialog(Kodit.this,"Kodit 0.01a by kod@TJU\nThank you for using!\nGreat thanks to zation@TJU");
			}
		});
		help.add(about);
		menuBar.add(help);
		setJMenuBar(menuBar);
		editArea.setFont(new Font("TimesNewRoman",0,14));
	}
	private void updateMenu(JMenuItem undo,JMenuItem redo)
		{
		undo.setEnabled(undoManager.canUndo());
		redo.setEnabled(undoManager.canRedo());
		}
	static public void main(String[] args)
	{
		JFrame.setDefaultLookAndFeelDecorated(true);
		Kodit test=new Kodit();
		test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		test.show();
	}
}

⌨️ 快捷键说明

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