Set up the Panel and Frame
JPanel myPanel = new JPanel() {
public void paint (Graphics gra) {
Graphics2D g = (Graphics2D) gra; // Cast to child class, which has more methods
// Put draw functions here
}
};
myPanel.setPreferredSize( new Dimension(400,400) ); // Set window size
JFrame myFrame = new JFrame();
myFrame.add(myPanel);
myFrame.pack();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
myFrame.setLocationRelativeTo(null);
- You will need to import the following: javax.swing.JFrame, javax.swing.JPanel, java.awt.Graphics, java.awt.Graphics2D, java.awt.Dimension
Set background color
this.setBackground(Color.blue);
super.paint(g);
- You will need to import java.awt.Color
Draw Lines
g.setPaint(Color.green); // Set simple line color
g.setStroke(new BasicStroke(3)); // Set line thickness
g.drawLine(20, 240, 120, 340);
g.drawLine(30, 280, 20, 340);
- You will need to import java.awt.Color
- You don't have to set the font or color again, unless they need to change before drawing different lines
Draw Shapes
g.setPaint(Color.black); // Set shape fill/outline color
g.setStroke(new BasicStroke(3)); // Set outline thickness
// Draw outlines of shapes
g.drawRect(100,20,50,60);
g.drawOval(170,30,20,40);
g.drawArc(200,10,40,30,0,180);
g.drawPolygon(new int[]{10,50,90,70,30}, new int[]{50,10,50,90,90}, 5);
// Draw solid shapes with fill functions
g.setPaint(new Color(20,210,220)); // Custom colors can be defined with their RGB values
g.fillOval(50,150,20,40);
g.fillRect(10,130,25,35);
g.fillArc(80,130,40,30,0,180);
- The first 2 parameters for rect/oval/arc are the x and y coordinates of the top left corner, and the next 2 coordinates are for width and height
- An arc has 2 more parameters for setting start and end angle
- For the polygon parameters, you provide the x-coordinates, y-coordinates, and number of points
Add Text
g.setPaint(Color.red);
g.setFont(new Font("Serif",Font.PLAIN,40));
g.drawString("Demo text", 200,120);
- Font must be imported from java.awt
Add Images
g.drawImage(new ImageIcon("demoFolder\\demoImage.png").getImage(),200,210,null);
- The second 2 parameters are the x and y coordinates of the top left corner of the image
- ImageIcon must be imported from javax.swing