Computer Science 15-110, Spring 2010
Class Notes: Getting Started with Graphics
Getting Started with Graphics
import java.awt.*;
import javax.swing.*;
class MyGraphics extends JComponent {
public void paint(Graphics page) {
// Place your paint code here!
}
////////////////////////////////////////////// /// END OF YOUR CODE /// /// (you may ignore all the code below!!! /// //////////////////////////////////////////////
public Dimension getPreferredSize() {
int initialWidth = 500;
int initialHeight = 400;
return new Dimension(initialWidth, initialHeight);
}
public static void main(String[] args) {
JComponent jc = newInstance();
JFrame frame = new JFrame(jc.getClass().getName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel cp = new JPanel();
cp.setLayout(new BorderLayout());
cp.add(jc);
frame.setContentPane(cp);
frame.pack();
frame.setVisible(true);
}
// Returns an instance of this class as a JComponent. This is necessary so
// students can rename this class without changing the "main" method's body.
public static JComponent newInstance() {
StackTraceElement[] trace = null;
try { throw new RuntimeException(); }
catch (Exception e) { trace = e.getStackTrace(); }
try { return (JComponent)Class.forName(trace[0].getClassName()).newInstance(); }
catch (Exception e) { return null; }
}
}
public void paint(Graphics page) {
page.fillRect(10, 10, 50, 100);
}
public void paint(Graphics page) {
page.fillRect(10, 10, 250, 100);
}
public void paint(Graphics page) {
page.fillRect(10, 10, 50, 250);
}
public void paint(Graphics page) {
page.fillRect(150, 10, 150, 100);
}
public void paint(Graphics page) {
page.fillRect(10, 150, 150, 100);
}
public void paint(Graphics page) {
page.fillOval(10, 10, 50, 100);
}
public void paint(Graphics page) {
page.setColor(Color.green);
page.fillRect(10, 10, 50, 100);
}
Example with All 16 Built-in Colors:
public void paint(Graphics page) {
page.setColor(Color.black);
page.fillRect(20, 20, 20, 20);
page.setColor(Color.blue);
page.fillRect(40, 20, 20, 20);
page.setColor(Color.cyan);
page.fillRect(60, 20, 20, 20);
page.setColor(Color.darkGray);
page.fillRect(80, 20, 20, 20);
page.setColor(Color.gray);
page.fillRect(100, 20, 20, 20);
page.setColor(Color.green);
page.fillRect(120, 20, 20, 20);
page.setColor(Color.lightGray);
page.fillRect(140, 20, 20, 20);
page.setColor(Color.magenta);
page.fillRect(160, 20, 20, 20);
page.setColor(Color.orange);
page.fillRect(180, 20, 20, 20);
page.setColor(Color.pink);
page.fillRect(200, 20, 20, 20);
page.setColor(Color.red);
page.fillRect(220, 20, 20, 20);
page.setColor(Color.white);
page.fillRect(240, 20, 20, 20);
page.setColor(Color.yellow);
page.fillRect(260, 20, 20, 20);
}
public void paint(Graphics page) {
// For a list of colors, see: http://en.wikipedia.org/wiki/List_of_colors
Color amethyst = new Color(153, 102, 204);
page.setColor(amethyst);
page.fillRect(10, 10, 50, 100);
}
public void paint(Graphics page) {
// Resize the window, see how the blue rectangle still fills the window!
int width = getWidth();
int height = getHeight();
page.setColor(Color.blue);
page.fillRect(0, 0, width, height);
}
public void paint(Graphics page) {
// Note which rectangle is in front and which is in back!
page.setColor(Color.blue);
page.fillRect(0, 0, 50, 50);
page.setColor(Color.red);
page.fillRect(25, 25, 50, 50);
page.setColor(Color.yellow);
page.fillRect(15, 15, 25, 25);
}
public void paint(Graphics page) {
// Center a 200x100 blue rectangle in the window
int width = getWidth();
int height = getHeight();
int blueWidth = 200;
int blueHeight = 100;
int blueLeft = (width - blueWidth)/2;
int blueTop = (height - blueHeight)/2;
page.setColor(Color.blue);
page.fillRect(blueLeft, blueTop, blueWidth, blueHeight);
// Center a yellow oval inside the blue rectangle with the given "margin"
int margin = 10;
page.setColor(Color.yellow);
page.fillOval(blueLeft+margin, blueTop+margin, blueWidth-2*margin, blueHeight-2*margin);
}
carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem