Okay so I have spent a lot of time searching for some answers to my problem and I have had very little luck. I am trying to add a graphic that I have painted to a JPanel and then adding the JPanel to the JFrame. here is my code:
import java.awt.*;
import javax.swing.*;
public class Testing
{
public static void main(String[] args)
{
JFrame f = new JFrame("JFrame with a JPanel");
f.setSize(500,500);
JLabel l1 = new JLabel("Hello !");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
DrawBox dB = new DrawBox(400,200,20,20);
p1.add(l1);
p2.add(dB);
f.add(p1,BorderLayout.PAGE_END);
f.add(p2,BorderLayout.CENTER);
//f.add(dB); //Adding directly to the JFrame works fine
f.setVisible(true);
}
}
Next is the class that creates the graphic
public class DrawBox extends JPanel {
int xVal = 0;
int yVal = 0;
int width = 0;
int height = 0;
public DrawBox(int x, int y, int w, int h) {
xVal = x;
yVal = y;
width = w;
height = h;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(xVal, yVal, width, height);
}
}
If I add DrawBox directly to the the JFrame it seems to work fine. However if I try to add more than one graphic directly to JFrame only one of them will show.