Java:Tutorials:Graphics
From GPWiki(Redirected from Java:Graphics)
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) |


