Java:Tutorials:Graphics
From GPWiki
The wiki is now hosted by GameDev.NET at wiki.gamedev.net. All gpwiki.org content has been moved to the new server. However, the GPWiki forums are still active! Come say hello. [edit] Graphics and TechniquesI 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] Paintingpublic 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/AnimationBy 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) |


