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

📄 inputhandler.java

📁 jedit中独立出来的语法高亮组件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				caret = TextUtilities.findWordEnd(lineText,caret,noWordSep);			}			try			{				textArea.getDocument().remove(start,					(caret + lineStart) - start);			}			catch(BadLocationException bl)			{				bl.printStackTrace();			}		}	}	public static class end implements ActionListener	{		private boolean select;		public end(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int lastOfLine = textArea.getLineEndOffset(				textArea.getCaretLine()) - 1;			int lastVisibleLine = textArea.getFirstLine()				+ textArea.getVisibleLines();			if(lastVisibleLine >= textArea.getLineCount())			{				lastVisibleLine = Math.min(textArea.getLineCount() - 1,					lastVisibleLine);			}			else				lastVisibleLine -= (textArea.getElectricScroll() + 1);			int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1;			int lastDocument = textArea.getDocumentLength();			if(caret == lastDocument)			{				textArea.getToolkit().beep();				return;			}			else if(!Boolean.TRUE.equals(textArea.getClientProperty(				SMART_HOME_END_PROPERTY)))				caret = lastOfLine;			else if(caret == lastVisible)				caret = lastDocument;			else if(caret == lastOfLine)				caret = lastVisible;			else				caret = lastOfLine;			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);		}	}	public static class select_all implements ActionListener {		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.selectAll();		}	}		public static class document_end implements ActionListener	{		private boolean select;		public document_end(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			if(select)				textArea.select(textArea.getMarkPosition(),					textArea.getDocumentLength());			else				textArea.setCaretPosition(textArea					.getDocumentLength());		}	}	public static class home implements ActionListener	{		private boolean select;		public home(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int firstLine = textArea.getFirstLine();			int firstOfLine = textArea.getLineStartOffset(				textArea.getCaretLine());			int firstVisibleLine = (firstLine == 0 ? 0 :				firstLine + textArea.getElectricScroll());			int firstVisible = textArea.getLineStartOffset(				firstVisibleLine);			if(caret == 0)			{				textArea.getToolkit().beep();				return;			}			else if(!Boolean.TRUE.equals(textArea.getClientProperty(				SMART_HOME_END_PROPERTY)))				caret = firstOfLine;			else if(caret == firstVisible)				caret = 0;			else if(caret == firstOfLine)				caret = firstVisible;			else				caret = firstOfLine;			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);		}	}	public static class document_home implements ActionListener	{		private boolean select;		public document_home(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			if(select)				textArea.select(textArea.getMarkPosition(),0);			else				textArea.setCaretPosition(0);		}	}	public static class insert_break implements ActionListener	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			if(!textArea.isEditable())			{				textArea.getToolkit().beep();				return;			}			textArea.setSelectedText("\n");		}	}	public static class insert_tab implements ActionListener	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			if(!textArea.isEditable())			{				textArea.getToolkit().beep();				return;			}			textArea.overwriteSetSelectedText("\t");		}	}	public static class next_char implements ActionListener	{		private boolean select;		public next_char(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			if(caret == textArea.getDocumentLength())			{				textArea.getToolkit().beep();				return;			}			if(select)				textArea.select(textArea.getMarkPosition(),					caret + 1);			else				textArea.setCaretPosition(caret + 1);		}	}	public static class next_line implements ActionListener	{		private boolean select;		public next_line(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int line = textArea.getCaretLine();			if(line == textArea.getLineCount() - 1)			{				textArea.getToolkit().beep();				return;			}			int magic = textArea.getMagicCaretPosition();			if(magic == -1)			{				magic = textArea.offsetToX(line,					caret - textArea.getLineStartOffset(line));			}			caret = textArea.getLineStartOffset(line + 1)				+ textArea.xToOffset(line + 1,magic);			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);			textArea.setMagicCaretPosition(magic);		}	}	public static class next_page implements ActionListener	{		private boolean select;		public next_page(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int lineCount = textArea.getLineCount();			int firstLine = textArea.getFirstLine();			int visibleLines = textArea.getVisibleLines();			int line = textArea.getCaretLine();			firstLine += visibleLines;			if(firstLine + visibleLines >= lineCount - 1)				firstLine = lineCount - visibleLines;			textArea.setFirstLine(firstLine);			int caret = textArea.getLineStartOffset(				Math.min(textArea.getLineCount() - 1,				line + visibleLines));			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);		}	}	public static class next_word implements ActionListener	{		private boolean select;		public next_word(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int line = textArea.getCaretLine();			int lineStart = textArea.getLineStartOffset(line);			caret -= lineStart;			String lineText = textArea.getLineText(textArea				.getCaretLine());			if(caret == lineText.length())			{				if(lineStart + caret == textArea.getDocumentLength())				{					textArea.getToolkit().beep();					return;				}				caret++;			}			else			{				String noWordSep = (String)textArea.getDocument().getProperty("noWordSep");				caret = TextUtilities.findWordEnd(lineText,caret,noWordSep);			}			if(select)				textArea.select(textArea.getMarkPosition(),					lineStart + caret);			else				textArea.setCaretPosition(lineStart + caret);		}	}	public static class overwrite implements ActionListener	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.setOverwriteEnabled(				!textArea.isOverwriteEnabled());		}	}	public static class prev_char implements ActionListener	{		private boolean select;		public prev_char(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			if(caret == 0)			{				textArea.getToolkit().beep();				return;			}			if(select)				textArea.select(textArea.getMarkPosition(),					caret - 1);			else				textArea.setCaretPosition(caret - 1);		}	}	public static class prev_line implements ActionListener	{		private boolean select;		public prev_line(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int line = textArea.getCaretLine();			if(line == 0)			{				textArea.getToolkit().beep();				return;			}			int magic = textArea.getMagicCaretPosition();			if(magic == -1)			{				magic = textArea.offsetToX(line,					caret - textArea.getLineStartOffset(line));			}			caret = textArea.getLineStartOffset(line - 1)				+ textArea.xToOffset(line - 1,magic);			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);			textArea.setMagicCaretPosition(magic);		}	}	public static class prev_page implements ActionListener	{		private boolean select;		public prev_page(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int firstLine = textArea.getFirstLine();			int visibleLines = textArea.getVisibleLines();			int line = textArea.getCaretLine();			if(firstLine < visibleLines)				firstLine = visibleLines;			textArea.setFirstLine(firstLine - visibleLines);			int caret = textArea.getLineStartOffset(				Math.max(0,line - visibleLines));			if(select)				textArea.select(textArea.getMarkPosition(),caret);			else				textArea.setCaretPosition(caret);		}	}	public static class prev_word implements ActionListener	{		private boolean select;		public prev_word(boolean select)		{			this.select = select;		}		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			int caret = textArea.getCaretPosition();			int line = textArea.getCaretLine();			int lineStart = textArea.getLineStartOffset(line);			caret -= lineStart;			String lineText = textArea.getLineText(textArea				.getCaretLine());			if(caret == 0)			{				if(lineStart == 0)				{					textArea.getToolkit().beep();					return;				}				caret--;			}			else			{				String noWordSep = (String)textArea.getDocument().getProperty("noWordSep");				caret = TextUtilities.findWordStart(lineText,caret,noWordSep);			}			if(select)				textArea.select(textArea.getMarkPosition(),					lineStart + caret);			else				textArea.setCaretPosition(lineStart + caret);		}	}	public static class repeat implements ActionListener,		InputHandler.NonRecordable	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.getInputHandler().setRepeatEnabled(true);			String actionCommand = evt.getActionCommand();			if(actionCommand != null)			{				textArea.getInputHandler().setRepeatCount(					Integer.parseInt(actionCommand));			}		}	}	public static class toggle_rect implements ActionListener	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.setSelectionRectangular(				!textArea.isSelectionRectangular());		}	}	public static class insert_char implements ActionListener,		InputHandler.NonRepeatable	{		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			String str = evt.getActionCommand();			int repeatCount = textArea.getInputHandler().getRepeatCount();			if(textArea.isEditable())			{				StringBuffer buf = new StringBuffer();				for(int i = 0; i < repeatCount; i++)					buf.append(str);				textArea.overwriteSetSelectedText(buf.toString());			}			else			{				textArea.getToolkit().beep();			}		}	}		public static class clip_copy implements ActionListener {		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.copy();		}	}		public static class clip_paste implements ActionListener {		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.paste();		}	}		public static class clip_cut implements ActionListener {		public void actionPerformed(ActionEvent evt)		{			JEditTextArea textArea = getTextArea(evt);			textArea.cut();		}	}}

⌨️ 快捷键说明

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