Java drawing on JPanel which on a JFrame

extremecoder picture extremecoder · Sep 9, 2010 · Viewed 21k times · Source

Hi I have a JFrame and there are two JPanels on top of it. My intention is to draw on the JPanels. Can anyone please share any Java code?

Answer

OscarRyz picture OscarRyz · Sep 9, 2010

All the JComponents ( of which JPanel inherits from ) have a paintComponent(Graphics g ) method that you can override.

Basically... oh.. well, I think this would be more appropiate:

http://java.sun.com/developer/technicalArticles/GUI/java2d/java2dpart1.html

Naive sample:

sample

Source code:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.*;
    public class X  {
        public static void main( String [] args ) {
             JFrame frame = new JFrame();
             frame.add( new JPanel() {
                 public void paintComponent( Graphics g ) {
                    super.paintComponent(g);
                    Graphics2D g2 = (Graphics2D)g;

                    Line2D line = new Line2D.Double(10, 10, 40, 40);
                    g2.setColor(Color.blue);
                    g2.setStroke(new BasicStroke(10));
                    g2.draw(line);
                 }
            });
            frame.setVisible( true );
        }
    }