Results 1 to 1 of 1
-
How to highlight text by drag and selection
Java Code:import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.font.FontRenderContext; import java.awt.font.TextHitInfo; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import javax.swing.JFrame; import javax.swing.JPanel; public class Highlights extends JPanel { private TextLayout textLayout; private TextHitInfo firstHit, secondHit; private int x = 40, y = 80; public Highlights(){ addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent me) { firstHit = textLayout.hitTestChar(me.getX() - x, me.getY() - y); secondHit = null; } public void mouseReleased(MouseEvent me) { secondHit = textLayout.hitTestChar(me.getX() - x, me.getY() - y); repaint(); } }); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent me) { secondHit = textLayout.hitTestChar(me.getX() - x, me.getY() - y); repaint(); } }); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); String s = "Drag the text to highlight Java Source and Support."; Font font = new Font("Serif", Font.PLAIN, 32); if (textLayout == null) { FontRenderContext frc = g2.getFontRenderContext(); textLayout = new TextLayout(s, font, frc); } // Draw the highlight. if (firstHit != null && secondHit != null) { Shape base = textLayout.getLogicalHighlightShape(firstHit .getInsertionIndex(), secondHit.getInsertionIndex()); AffineTransform at = AffineTransform.getTranslateInstance(x, y); Shape highlight = at.createTransformedShape(base); g2.setPaint(Color.white); g2.fill(highlight); } g2.setPaint(Color.black); textLayout.draw(g2, x, y); } public static void main(String[] args) { JFrame f = new JFrame(); f.getContentPane().add(new Highlights()); f.setSize(850, 250); f.show(); } }"The sole cause of man’s unhappiness is that he does not know how to stay quietly in his room." - Blaise Pascal
Similar Threads
-
To highlight multiple selected values in listbox
By swapnanair in forum JavaServer Pages (JSP) and JSTLReplies: 1Last Post: 05-06-2008, 11:17 AM -
Code for selection
By kneekow in forum EclipseReplies: 0Last Post: 02-01-2008, 03:10 PM -
Adding custom highlight to JEditorPane
By andrewb in forum AWT / SwingReplies: 0Last Post: 06-22-2007, 06:48 PM -
GNU Source-highlight 2.7
By levent in forum Java SoftwareReplies: 0Last Post: 06-12-2007, 08:39 AM -
How to select/highlight an entire row in JTextArea
By Valeriano in forum AWT / SwingReplies: 2Last Post: 05-28-2007, 11:20 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks