Search code examples
javaswingtextjframedraw

Draw text with graphics object on JFrame


I am an avid programmer but today is my first Java lesson.

public void Paint (Graphics g)
{
    if(g instanceof Graphics2D)
    {
        Graphics2D g2d = (Graphics2D)g;
        g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    }
    g.drawString("This is gona be awesome", 200, 200);
}

With the above code, I want to write a sentence on the window but it never writes. What am I doing wrong?

Edit: Never mind - Paint must be paint. I apologize profusely.


Solution

  • In the given code, what you want is

     g2d.drawString("This is gona be awesome", 200, 200);
      ^
    

    A working example for your reference :

    package Experiments;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    
    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 {
    
      @Override
      public void paintComponent(Graphics g) {
          if(g instanceof Graphics2D)
          {
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
    
            g2.drawString("This is gona be awesome",70,20); 
           }
       }
    }