swing - My rectangle sometimes moves when I run my java program -
i should able move rectangle arrow keys after running program few times rectangle not move. make rectangle move close netbeans , reopen it. rectangle able move stops moving after couple tries. want solve problem can make changes.
package project; import java.awt.color; import java.awt.graphics; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.keyevent; import java.awt.event.keylistener; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.timer; //keylistener use keyboard public class main extends jpanel implements actionlistener, keylistener { timer tm = new timer(5, this); //for animation int x = 50, y = 50, velx =0, vely = 0; public main() { tm.start(); //starts timer addkeylistener(this); //this refearing keylistener setfocusable(true); //enable keylistener setfocustraversalkeysenabled(false); //shift or tab not use f } public void paintcomponent(graphics g) { super.paintcomponent(g); g.setcolor(color.red); g.fillrect(x,y,50,50); } public void actionperformed(actionevent e) { if (x<0) { velx = 0; x = 0; } if (x>500) { velx = 0; x = 500; } if (y<0) { vely = 0; y=0; } if (y>300) { vely = 0; y = 300; } x = x + velx; y = y + vely; repaint(); // repaint rectangle } public void keypressed(keyevent e) { int c = e.getkeycode(); //get key if (c == keyevent.vk_left) // vk_left left arrow { velx = -3; vely = 0; } if (c == keyevent.vk_up) // vk_up arrow { velx = 0; vely = -3; // means } if (c == keyevent.vk_right) { velx = 3; vely = 0; } if (c == keyevent.vk_down) { velx = 0; vely = 3; } } public void keytyped(keyevent e){} public void keyreleased(keyevent e) //when stop pressing { velx = 0; vely = 0; } public static void main(string[] args) { main m = new main(); jframe jf = new jframe(); jf.settitle("tutorial"); jf.setsize(600,400); jf.setvisible(true); jf.setdefaultcloseoperation(jframe.exit_on_close); jf.add(m); } }
Comments
Post a Comment