Java:Tutorials:Graphics
From GDWiki
[edit] Graphics and Techniques
I find that the easiest way to implement graphics in a Java application is with the JFrame. I start by creating a shell which opens a window that we can draw onto. Start by importing java.awt.* java.awt.event.* and javax.swing.*.
import java.awt.*; import java.awt.event.*; import javax.swing.*;
Then make sure your class extends JFrame. Within the constructor call setVisible(true); and setSize(Xwidth,Ywidth);
public class simplegraphics extends JFrame { public simplegraphics() { setVisible(true); setSize(300,200); }
Next you need a paint method.
public void paint(Graphics g) { //some code where painting occurs }
Then in your main method declare a new simplegraphics, and call the repaint function.
public static void main(String args[]) { simplegraphics SG = new simplegraphics(); SG.repaint(); } }
[edit] Painting
public void paint(Graphics g) { g.translate(x,y); //Moves the origin 0,0 to this point. g.setColor(Color.red);//Color can be replaced by one of multiple //predefined color or created manualy. //Such as Color.blue Color.green or //new Color(Red_Amount,Green_Amount,Blue_Amount) g.drawLine(x,y,width,height);//their are more commands than whats shown here. g.drawRect(x,y,width,height); g.fillRect(x,y,width,height); g.drawOval(x,y,xRadius,yRadius); g.fillOval(x,y,xRadius,yRadius); }
[edit] Technique/Animation
By making these changes or copying and pasting; this program is a demonstration on animating a ball bounce back and forth.
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class simplegraphics extends JFrame { int x=150,y=100,xdir=1,ydir=2 ; public simplegraphics() { boolean initial=true; setVisible(true); setSize(300,200); } public void paint(Graphics g) { g.translate(0,25);//move origin down to compromise for the title bar g.setColor(Color.white); //background color g.fillRect(0,0,getWidth(),getHeight());//background g.setColor(Color.white); //clears the old ball g.fillOval(x,y,20,20); move(); //updates the balls position g.setColor(Color.red); //draws a new ball g.fillOval(x,y,20,20); } public void move() { if(x<0||x>getWidth()-20) xdir*=-1; if(y<0||y>getHeight()-45) ydir*=-1; x+=xdir; y+=ydir; } public static void main(String args[]) { simplegraphics SG = new simplegraphics(); int step=0; while(true) { if(step%500000==0)//the number 500000 doesn't matter but a smaller number will make the //animation, not the ball, speed up. { SG.repaint(); } step++; } } }
--techno 00:02, 24 May 2005 (EDT)

