import javax.swing.*;
/**
*
*
*/
public class MischievousMain {
public static void main
(String[] args
) { frame.setSize(500, 500);
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); // mischievous square input
frame.add(new BouncingMischievousSquare());
frame.setVisible(true);
}
/**
*
*
*/
import java.util.Random;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
private static final int SQUARE_SIZE = 40;
private static final int SPEED_OF_SQUARE = 6;
private int xPosit, yPosit;
private int xSpeed, ySpeed;
BouncingMischievousSquare(){
//speed direction
xSpeed = SPEED_OF_SQUARE;
ySpeed = -SPEED_OF_SQUARE;
//a timer for repaint
//http://d...content-available-to-author-only...e.com/javase/tutorial/uiswing/misc/timer.html
timer.start();
}
//Screensize
int width = getWidth();
int height = getHeight();
xPosit += xSpeed;
yPosit += ySpeed;
//test xAxis
if(xPosit < 0){
xPosit = 0;
xSpeed = SPEED_OF_SQUARE;
}
else if(xPosit > width - SQUARE_SIZE){
xPosit = width - SQUARE_SIZE;
xSpeed = -SPEED_OF_SQUARE;
}
if(yPosit < 0){
yPosit = 0;
ySpeed = SPEED_OF_SQUARE;
}
else if(yPosit > height - SQUARE_SIZE){
xPosit = height - SQUARE_SIZE;
xSpeed = -SPEED_OF_SQUARE;
}
//ask the computer gods to redraw the square
repaint();
}
super.paintComponent(g);
g.fillRect(xPosit, yPosit, SQUARE_SIZE, SQUARE_SIZE );
}
}
CmltcG9ydCBqYXZheC5zd2luZy4qOwoKCi8qKgogKgogKiAKICovCnB1YmxpYyBjbGFzcyBNaXNjaGlldm91c01haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgSkZyYW1lIGZyYW1lID0gbmV3IEpGcmFtZSgiQm91bmNpbmcgQ3ViZSIpOwogICAgICAgZnJhbWUuc2V0U2l6ZSg1MDAsIDUwMCk7CiAgICAgICBmcmFtZS5zZXREZWZhdWx0Q2xvc2VPcGVyYXRpb24oSkZyYW1lLkVYSVRfT05fQ0xPU0UpOwogICAgICAgLy8gbWlzY2hpZXZvdXMgc3F1YXJlIGlucHV0CiAgICAgICBmcmFtZS5hZGQobmV3IEJvdW5jaW5nTWlzY2hpZXZvdXNTcXVhcmUoKSk7CiAgICAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOwogICAgfSAgCiAgICAKICAgIAogICAgCi8qKgogKgogKiAKICovCmltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOwppbXBvcnQgamF2YXguc3dpbmcuKjsKaW1wb3J0IGphdmEuYXd0Lio7CmltcG9ydCBqYXZhLmF3dC5ldmVudC4qOwoKcHVibGljIGNsYXNzIEJvdW5jaW5nTWlzY2hpZXZvdXNTcXVhcmUgZXh0ZW5kcyBKUGFuZWwgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7IAogICAgCiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1FVQVJFX1NJWkUgPSA0MDsKICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTUEVFRF9PRl9TUVVBUkUgPSA2OwogICAgcHJpdmF0ZSBpbnQgeFBvc2l0LCB5UG9zaXQ7CiAgICBwcml2YXRlIGludCB4U3BlZWQsIHlTcGVlZDsKICAgIAogICAgQm91bmNpbmdNaXNjaGlldm91c1NxdWFyZSgpewogICAgICAgIC8vc3BlZWQgIGRpcmVjdGlvbgogICAgICAgIHhTcGVlZCA9IFNQRUVEX09GX1NRVUFSRTsKICAgICAgICB5U3BlZWQgPSAtU1BFRURfT0ZfU1FVQVJFOwogICAgICAgIC8vYSB0aW1lciBmb3IgcmVwYWludCAKICAgICAgICAvL2h0dHA6Ly9kLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS9qYXZhc2UvdHV0b3JpYWwvdWlzd2luZy9taXNjL3RpbWVyLmh0bWwKICAgICAgICBUaW1lciB0aW1lciA9IG5ldyBUaW1lcigxMDAsIHRoaXMpOwogICAgICAgIHRpbWVyLnN0YXJ0KCk7CiAgICB9CiAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSl7CiAgICAgICAgLy9TY3JlZW5zaXplCiAgICAgICAgaW50IHdpZHRoID0gZ2V0V2lkdGgoKTsKICAgICAgICBpbnQgaGVpZ2h0ID0gZ2V0SGVpZ2h0KCk7CiAgICAgICAgeFBvc2l0ICs9IHhTcGVlZDsKICAgICAgICB5UG9zaXQgKz0geVNwZWVkOwogICAgICAgIC8vdGVzdCB4QXhpcwogICAgICAgIGlmKHhQb3NpdCA8IDApewogICAgICAgICAgICB4UG9zaXQgPSAwOwogICAgICAgICAgICB4U3BlZWQgPSBTUEVFRF9PRl9TUVVBUkU7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoeFBvc2l0ID4gd2lkdGggLSBTUVVBUkVfU0laRSl7IAogICAgICAgICAgICB4UG9zaXQgPSB3aWR0aCAtIFNRVUFSRV9TSVpFOwogICAgICAgICAgICB4U3BlZWQgPSAtU1BFRURfT0ZfU1FVQVJFOwogICAgICAgIH0KICAgICAgICBpZih5UG9zaXQgPCAwKXsKICAgICAgICAgICAgeVBvc2l0ID0gMDsKICAgICAgICAgICAgeVNwZWVkID0gU1BFRURfT0ZfU1FVQVJFOwogICAgICAgIH0KICAgICAgICAgICBlbHNlIGlmKHlQb3NpdCA+IGhlaWdodCAtIFNRVUFSRV9TSVpFKXsgCiAgICAgICAgICAgIHhQb3NpdCA9IGhlaWdodCAtIFNRVUFSRV9TSVpFOwogICAgICAgICAgICB4U3BlZWQgPSAtU1BFRURfT0ZfU1FVQVJFOwogICAgICAgICAgIH0KICAgICAgICAvL2FzayB0aGUgY29tcHV0ZXIgZ29kcyB0byByZWRyYXcgdGhlIHNxdWFyZQogICAgICAgIHJlcGFpbnQoKTsKICAgIH0KICAgICBwdWJsaWMgdm9pZCBwYWludENvbXBvbmVudChHcmFwaGljcyBnKXsgICAgICAgCiAgICAgICAgIHN1cGVyLnBhaW50Q29tcG9uZW50KGcpOwogICAgICAgICBnLmZpbGxSZWN0KHhQb3NpdCwgeVBvc2l0LCBTUVVBUkVfU0laRSwgU1FVQVJFX1NJWkUgKTsKICAgICB9Cn0KICAgICAKICAgICAKICAgICAK