Mega Code Archive

 
Categories / Java by API / Java Awt Font
 

New TextLayout(String string, Font font, FontRenderContext frc)

import java.awt.Container; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.font.FontRenderContext; import java.awt.font.TextHitInfo; import java.awt.font.TextLayout; import javax.swing.JComponent; import javax.swing.JFrame; public class MainClass {   public static void main(String[] args) {     JFrame jf = new JFrame("Demo");     Container cp = jf.getContentPane();     MyCanvas tl = new MyCanvas();     cp.add(tl);     jf.setSize(300, 200);     jf.setVisible(true);   } } class MyCanvas extends JComponent {   private TextLayout mTextLayout;   private int mX = 40, mY = 80;   public MyCanvas() {     addMouseListener(new MouseAdapter() {       public void mouseClicked(MouseEvent me) {         TextHitInfo hit = mTextLayout.hitTestChar(me.getX() - mX, me.getY() - mY);         System.out.println(hit.getCharIndex());         System.out.println(hit.getInsertionIndex());         System.out.println(hit.isLeadingEdge());       }     });   }   public void paint(Graphics g) {     Graphics2D g2 = (Graphics2D) g;     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);     String s = "www.rntsoft.com";     Font font = new Font("Serif", Font.PLAIN, 32);     if (mTextLayout == null) {       FontRenderContext frc = g2.getFontRenderContext();       mTextLayout = new TextLayout(s, font, frc);     }     mTextLayout.draw(g2, mX, mY);   } }