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

📄 textareapainter.java

📁 jedit中独立出来的语法高亮组件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * TextAreaPainter.java - Paints the text area * Copyright (C) 1999 Slava Pestov * * 08/05/2002	Cursor (caret) rendering fixed for JDK 1.4 (Anonymous) * * You may use and modify this package for any purpose. Redistribution is * permitted, in both source and binary form, provided that this notice * remains intact in all source distributions of this package. */package org.syntax.jedit;import org.syntax.jedit.tokenmarker.*;import javax.swing.ToolTipManager;import javax.swing.text.*;import javax.swing.JComponent;import java.awt.event.MouseEvent;import java.awt.*;/** * The text area repaint manager. It performs double buffering and paints * lines of text. * @author Slava Pestov * @version $Id: TextAreaPainter.java,v 1.24 1999/12/13 03:40:30 sp Exp $ */public class TextAreaPainter extends JComponent implements TabExpander{	/**	 * Creates a new repaint manager. This should be not be called	 * directly.	 */	public TextAreaPainter(JEditTextArea textArea, TextAreaDefaults defaults)	{		this.textArea = textArea;		setAutoscrolls(true);		setDoubleBuffered(true);		setOpaque(true);		ToolTipManager.sharedInstance().registerComponent(this);		currentLine = new Segment();		currentLineIndex = -1;		setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));		setFont(new Font("Monospaced",Font.PLAIN,14));		setForeground(Color.black);		setBackground(Color.white);		blockCaret = defaults.blockCaret;		styles = defaults.styles;		cols = defaults.cols;		rows = defaults.rows;		caretColor = defaults.caretColor;		selectionColor = defaults.selectionColor;		lineHighlightColor = defaults.lineHighlightColor;		lineHighlight = defaults.lineHighlight;		bracketHighlightColor = defaults.bracketHighlightColor;		bracketHighlight = defaults.bracketHighlight;		paintInvalid = defaults.paintInvalid;		eolMarkerColor = defaults.eolMarkerColor;		eolMarkers = defaults.eolMarkers;	}	/**	 * Returns if this component can be traversed by pressing the	 * Tab key. This returns false.	 */	public final boolean isManagingFocus()	{		return false;	}	/**	 * Returns the syntax styles used to paint colorized text. Entry <i>n</i>	 * will be used to paint tokens with id = <i>n</i>.	 * @see org.syntax.jedit.Token	 */	public final SyntaxStyle[] getStyles()	{		return styles;	}	/**	 * Sets the syntax styles used to paint colorized text. Entry <i>n</i>	 * will be used to paint tokens with id = <i>n</i>.	 * @param styles The syntax styles	 * @see org.syntax.jedit.Token	 */	public final void setStyles(SyntaxStyle[] styles)	{		this.styles = styles;		repaint();	}	/**	 * Returns the caret color.	 */	public final Color getCaretColor()	{		return caretColor;	}	/**	 * Sets the caret color.	 * @param caretColor The caret color	 */	public final void setCaretColor(Color caretColor)	{		this.caretColor = caretColor;		invalidateSelectedLines();	}	/**	 * Returns the selection color.	 */	public final Color getSelectionColor()	{		return selectionColor;	}	/**	 * Sets the selection color.	 * @param selectionColor The selection color	 */	public final void setSelectionColor(Color selectionColor)	{		this.selectionColor = selectionColor;		invalidateSelectedLines();	}	/**	 * Returns the line highlight color.	 */	public final Color getLineHighlightColor()	{		return lineHighlightColor;	}	/**	 * Sets the line highlight color.	 * @param lineHighlightColor The line highlight color	 */	public final void setLineHighlightColor(Color lineHighlightColor)	{		this.lineHighlightColor = lineHighlightColor;		invalidateSelectedLines();	}	/**	 * Returns true if line highlight is enabled, false otherwise.	 */	public final boolean isLineHighlightEnabled()	{		return lineHighlight;	}	/**	 * Enables or disables current line highlighting.	 * @param lineHighlight True if current line highlight should be enabled,	 * false otherwise	 */	public final void setLineHighlightEnabled(boolean lineHighlight)	{		this.lineHighlight = lineHighlight;		invalidateSelectedLines();	}	/**	 * Returns the bracket highlight color.	 */	public final Color getBracketHighlightColor()	{		return bracketHighlightColor;	}	/**	 * Sets the bracket highlight color.	 * @param bracketHighlightColor The bracket highlight color	 */	public final void setBracketHighlightColor(Color bracketHighlightColor)	{		this.bracketHighlightColor = bracketHighlightColor;		invalidateLine(textArea.getBracketLine());	}	/**	 * Returns true if bracket highlighting is enabled, false otherwise.	 * When bracket highlighting is enabled, the bracket matching the	 * one before the caret (if any) is highlighted.	 */	public final boolean isBracketHighlightEnabled()	{		return bracketHighlight;	}	/**	 * Enables or disables bracket highlighting.	 * When bracket highlighting is enabled, the bracket matching the	 * one before the caret (if any) is highlighted.	 * @param bracketHighlight True if bracket highlighting should be	 * enabled, false otherwise	 */	public final void setBracketHighlightEnabled(boolean bracketHighlight)	{		this.bracketHighlight = bracketHighlight;		invalidateLine(textArea.getBracketLine());	}	/**	 * Returns true if the caret should be drawn as a block, false otherwise.	 */	public final boolean isBlockCaretEnabled()	{		return blockCaret;	}	/**	 * Sets if the caret should be drawn as a block, false otherwise.	 * @param blockCaret True if the caret should be drawn as a block,	 * false otherwise.	 */	public final void setBlockCaretEnabled(boolean blockCaret)	{		this.blockCaret = blockCaret;		invalidateSelectedLines();	}	/**	 * Returns the EOL marker color.	 */	public final Color getEOLMarkerColor()	{		return eolMarkerColor;	}	/**	 * Sets the EOL marker color.	 * @param eolMarkerColor The EOL marker color	 */	public final void setEOLMarkerColor(Color eolMarkerColor)	{		this.eolMarkerColor = eolMarkerColor;		repaint();	}	/**	 * Returns true if EOL markers are drawn, false otherwise.	 */	public final boolean getEOLMarkersPainted()	{		return eolMarkers;	}	/**	 * Sets if EOL markers are to be drawn.	 * @param eolMarkers True if EOL markers should be drawn, false otherwise	 */	public final void setEOLMarkersPainted(boolean eolMarkers)	{		this.eolMarkers = eolMarkers;		repaint();	}	/**	 * Returns true if invalid lines are painted as red tildes (~),	 * false otherwise.	 */	public boolean getInvalidLinesPainted()	{		return paintInvalid;	}	/**	 * Sets if invalid lines are to be painted as red tildes.	 * @param paintInvalid True if invalid lines should be drawn, false otherwise	 */	public void setInvalidLinesPainted(boolean paintInvalid)	{		this.paintInvalid = paintInvalid;	}	/**	 * Adds a custom highlight painter.	 * @param highlight The highlight	 */	public void addCustomHighlight(Highlight highlight)	{		highlight.init(textArea,highlights);		highlights = highlight;	}	/**	 * Highlight interface.	 */	public interface Highlight	{		/**		 * Called after the highlight painter has been added.		 * @param textArea The text area		 * @param next The painter this one should delegate to		 */		void init(JEditTextArea textArea, Highlight next);		/**		 * This should paint the highlight and delgate to the		 * next highlight painter.		 * @param gfx The graphics context		 * @param line The line number		 * @param y The y co-ordinate of the line		 */		void paintHighlight(Graphics gfx, int line, int y);		/**		 * Returns the tool tip to display at the specified		 * location. If this highlighter doesn't know what to		 * display, it should delegate to the next highlight		 * painter.		 * @param evt The mouse event		 */		String getToolTipText(MouseEvent evt);	}	/**	 * Returns the tool tip to display at the specified location.	 * @param evt The mouse event	 */	public String getToolTipText(MouseEvent evt)	{		if(highlights != null)			return highlights.getToolTipText(evt);		else			return null;	}	/**	 * Returns the font metrics used by this component.	 */	public FontMetrics getFontMetrics()	{		return fm;	}	/**	 * Sets the font for this component. This is overridden to update the	 * cached font metrics and to recalculate which lines are visible.	 * @param font The font

⌨️ 快捷键说明

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