Why is my image delaying when printed? Java -
in program, using basic graphic component, displaying "bugs in code", printing lady bugs across screen. every time run, or put delay between drawing of bugs , image, bugs print first regardless. here code:
import static java.lang.system.*; import static java.lang.math.*; import javax.swing.*; import java.util.*; import java.awt.*; import java.awt.graphics.*; import java.awt.event.*; import java.io.*; public class ladybugs { public static void main(string[]args) { new windows(); } } class windows extends frame implements actionlistener, keylistener, mouselistener { final dimension screensize = toolkit.getdefaulttoolkit().getscreensize(); private double width = screensize.getwidth(); private double height = screensize.getheight(); private int scwidth = (int)width, scheight = (int)760; private int whichscreen; private int turn; private image mypic; private image myscreen; private graphics pen; public windows() { out.println(scwidth +" "+ scheight); setsize(scwidth, scheight); addwindowlistener(new windowadapter() { public void windowclosing(windowevent e) { system.exit(0); } }); mypic = toolkit.getdefaulttoolkit().getimage("c:\\users\\s613228\\pictures\\moby.png"); this.setvisible(true); this.addkeylistener(this); this.addmouselistener(this); gameloop(); } public void gameloop() { } public void paint(graphics pen) { if(whichscreen ==0) { setbounds(0, 0, scwidth, scheight); pen.setfont(new font("verdana", font.plain, 50)); pen.drawstring("cody's test program", scwidth/5+50, scheight/6); // centered pen.drawimage(mypic, scwidth/8, 150, 351, 144, this); pause(1000); whichscreen++; } else doublebuffer(pen); } public void doublebuffer(graphics pen) { image code = toolkit.getdefaulttoolkit().getimage("c:\\users\\s613228\\pictures\\screencapjcreator.png"); pen.setcolor(color.white); pen.setfont(new font("verdana", font.plain, 50)); pen.drawstring("cody's test program", scwidth/5+50, scheight/6); // centered pen.drawimage(code, 0, 0, scwidth, scheight, this); pen.setcolor(color.black); pen.setfont(new font("verdana", font.plain, 60)); pen.drawline(0, 760, scwidth, 760); pen.drawstring("there bugs in code!", scwidth/5, scheight/6); // centered for(int x = 0; x < 50; x++) { int random1 = (int)(random()*scwidth*2-1)+1; int random2 = (int)(random()*1100-1)+200; int size = (int)(random()*100)+20; ladybugs(random1, random2, size, pen); pause(15); } } public void ladybugs(int x, int y, int size, graphics pen) { pen.setcolor(color.black); // head pen.filloval(x/2-size/4, y/2-(size/2+size/4), size/2, size/2); pen.setcolor(color.white); // whites of eyes pen.filloval(x/2-size/6, y/2-(size/2+size/6), size/8, size/8); pen.filloval(x/2+(size/6-size/8), y/2-(size/2+size/6), size/8, size/8); // body pen.setcolor(color.black); pen.filloval(x/2-size/2-4, y/2-size/2-4, size+8, size+8); pen.setcolor(color.red); pen.filloval(x/2-size/2, y/2-size/2, size, size); pen.setcolor(color.black); // middle-line wing separation pen.drawline(x/2, y/2-size/2, x/2, y/2+size/2); pen.drawline(x/2-1, y/2-size/2, x/2-1, y/2+size/2-1); pen.drawline(x/2+1, y/2-size/2, x/2+1, y/2+size/2-1); // upper-half black dots pen.filloval(x/2-size/4, y/2-size/4, size/5, size/5); pen.filloval(x/2+(size/4-size/5), y/2-size/4, size/5, size/5); // lower-half black dots pen.filloval(x/2-size/3, y/2+size/6, size/5, size/5); pen.filloval(x/2+(size/3-size/5), y/2+size/6, size/5, size/5); // pupils pen.filloval(x/2-(size/6-size/32), y/2-(size/2+size/7), size/12, size/16); pen.filloval(x/2+(size/12-size/48), y/2-(size/2+size/7), size/12, size/16); // antenae int s = size/2; pen.drawarc(x/2-(s+(s/16)), y/2-size+(s/4), size/2, size/2, 90, -90); pen.drawarc(x/2+s/16, y/2-size+(s/4), size/2, size/2, 90, 90); pen.filloval(x/2-(s+s/8)/2, y/2-(size-s/4)-s/15, s/10, s/10); pen.filloval(x/2+s/2, y/2-(size-s/4)-s/15, s/10, s/10); } public void keypressed(keyevent e) { } public void keyreleased(keyevent e) { } public void keytyped(keyevent e) { } public void keyentered(keyevent e) { } public void mouseclicked(mouseevent m) { } public void mousepressed(mouseevent m) { } public void mousereleased(mouseevent m) { } public void mouseentered(mouseevent m) { } public void mouseexited(mouseevent m) { } public void actionperformed(actionevent b) { } public void update(graphics g) { paint(g); } public static void pause(long r) { try { thread.sleep(r); } catch (exception e) { out.println(" sleep error "+e); } } } what i'm looking how print background image (a screencap of code) prior bugs. specific section:
public void paint(graphics pen) { if(whichscreen ==0) { setbounds(0, 0, scwidth, scheight); pen.setfont(new font("verdana", font.plain, 50)); pen.drawstring("cody's test program", scwidth/5+50, scheight/6); // centered pen.drawimage(mypic, scwidth/8, 150, 351, 144, this); pause(1000); whichscreen++; } else doublebuffer(pen); } public void doublebuffer(graphics pen) { image code = toolkit.getdefaulttoolkit().getimage("c:\\users\\s613228\\pictures\\screencapjcreator.png"); pen.setcolor(color.white); pen.setfont(new font("verdana", font.plain, 50)); pen.drawstring("cody's test program", scwidth/5+50, scheight/6); // centered pen.drawimage(code, 0, 0, scwidth, scheight, this); pen.setcolor(color.black); pen.setfont(new font("verdana", font.plain, 60)); pen.drawline(0, 760, scwidth, 760); pen.drawstring("there bugs in code!", scwidth/5, scheight/6); // centered for(int x = 0; x < 50; x++) { int random1 = (int)(random()*scwidth*2-1)+1; int random2 = (int)(random()*1100-1)+200; int size = (int)(random()*100)+20; ladybugs(random1, random2, size, pen); pause(15); } } public void ladybugs(int x, int y, int size, graphics pen) { pen.setcolor(color.black); // head pen.filloval(x/2-size/4, y/2-(size/2+size/4), size/2, size/2); pen.setcolor(color.white); // whites of eyes pen.filloval(x/2-size/6, y/2-(size/2+size/6), size/8, size/8); pen.filloval(x/2+(size/6-size/8), y/2-(size/2+size/6), size/8, size/8); // body pen.setcolor(color.black); pen.filloval(x/2-size/2-4, y/2-size/2-4, size+8, size+8); pen.setcolor(color.red); pen.filloval(x/2-size/2, y/2-size/2, size, size); pen.setcolor(color.black); // middle-line wing separation pen.drawline(x/2, y/2-size/2, x/2, y/2+size/2); pen.drawline(x/2-1, y/2-size/2, x/2-1, y/2+size/2-1); pen.drawline(x/2+1, y/2-size/2, x/2+1, y/2+size/2-1); // upper-half black dots pen.filloval(x/2-size/4, y/2-size/4, size/5, size/5); pen.filloval(x/2+(size/4-size/5), y/2-size/4, size/5, size/5); // lower-half black dots pen.filloval(x/2-size/3, y/2+size/6, size/5, size/5); pen.filloval(x/2+(size/3-size/5), y/2+size/6, size/5, size/5); // pupils pen.filloval(x/2-(size/6-size/32), y/2-(size/2+size/7), size/12, size/16); pen.filloval(x/2+(size/12-size/48), y/2-(size/2+size/7), size/12, size/16); // antenae int s = size/2; pen.drawarc(x/2-(s+(s/16)), y/2-size+(s/4), size/2, size/2, 90, -90); pen.drawarc(x/2+s/16, y/2-size+(s/4), size/2, size/2, 90, 90); pen.filloval(x/2-(s+s/8)/2, y/2-(size-s/4)-s/15, s/10, s/10); pen.filloval(x/2+s/2, y/2-(size-s/4)-s/15, s/10, s/10); } note: of course said image directed c:\ drive won't appear y'all if recreated unless use similar picture. thank you
Comments
Post a Comment