views:

93

answers:

2

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?

+2  A: 

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 );
        }
    }
OscarRyz
+1 for selecting a bold stroke! I'd consider annotating, overriding `getPreferredSize()` and invoking `pack()`, too.
trashgod
It was the first one in the cited article :P
OscarRyz
+1  A: 

Check out the Java tutorials page. Start with the 2D Graphics tutorial.

camickr