Ask Questions?

View Latest Questions

Advertisement


 
 

JPanel - Drawing Area 2
Posted on: July 26, 2006 at 12:00 AM
To initialize the panel -- Constructor

Java: JPanel - Drawing Area 2

 

To initialize the panel -- Constructor

 

You can set the attributes of a panel from method where it's created, but if all drawing panels have the same attributes or the attribute can easily be parameterized,

 

 it's better to put this information in a constructor.

 

For example, let's assume you want the background to be black and the panel to be 200 pixels wide and 100 pixels high.

 

class SpaceView extends JPanel {
    //=================================== constructor
    public SpaceView () {
        setPreferredSize(new Dimension(200, 100));
        setBackground(Color.black);
    }//end constructor
   
    //================================ paintComponent
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        . . .
    }//end paintComponent
}//endclass SpaceView

To find the size of the drawing area

Use drawing.getWidth() and drawing.getHeight() if you need to know the size of your panel (drawing).

public void paintComponent(Graphics g) {
    // draw X on this panel
    super.paintComponent(g);
    int w = getWidth();     // get width of panel.
    int h = getHeight();    // get its height.
    g.drawLine(0, 0, w, h); // upper left to lower right.
    g.drawLine(0, h, w, 0); // lower left to upper right.
}//end paintComponent

Add setter methods

A good practice is to write "setter" methods in your new class. These are methods which set some value that paintComponent needs to redraw. The setter methods can also cause the panel to redraw if necessary.

To add mouse and key listeners to the drawing panel

If you want to use the mouse over this panel, you have to add a mouse listener. Similarly with a key listener if you want to get key presses. See

Copyleft 2003 Fred Swartz MIT License
Advertisement


DMCA.com