import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
public class NyPanel extends JPanel implements KeyListener, ActionListener
{
private Graphics2D g;
private double grader = 1;
private Timer timern = new Timer (5, this);
private double x = 0, y = 0, velX = 2, velY = 2;
public NyPanel ()
{
this.addKeyListener (this);
this.setFocusable (true);
this.setFocusTraversalKeysEnabled (false);
}
@Override
public void paintComponent (Graphics gr)
{
super.paintComponent (gr);
this.setBackground(Color.BLACK);
g = (Graphics2D) gr;
Ellipse2D cirkel = new Ellipse2D.Double (x, y, 40, 40);
g.fill(cirkel);
timern.start();
Rectangle2D rektangel0 = new Rectangle2D.Double (cirkel.getX (), cirkel.getY (), cirkel.getWidth (), cirkel.getHeight ());
g.setPaint (Color.GREEN);
g.draw (rektangel0);
g.rotate (grader*(Math.PI/180), 400.0, 300.0);
Rectangle2D rektangel = new Rectangle2D.Double (200.0, 250.0, 100.0, 40.0);
g.setPaint (Color.DARK_GRAY);
g.draw (rektangel);
Rectangle2D rektangel2 = new Rectangle2D.Double (450.0, 250.0, 100.0, 40.0);
g.setPaint (Color.DARK_GRAY);
g.draw (rektangel2);
Rectangle2D rektangel3 = new Rectangle2D.Double (350.0, 400.0, 100.0, 40.0);
g.setPaint (Color.GRAY);
g.draw (rektangel3);
Rectangle2D rektangel4 = new Rectangle2D.Double (350.0, 100.0, 100.0, 40.0);
g.setPaint (Color.GRAY);
g.draw (rektangel4);
if (rektangel0.intersects(rektangel))
{
}
if (rektangel0.intersects(rektangel2))
{
}
if (rektangel0.intersects(rektangel3))
{
}
if (rektangel0.intersects(rektangel4))
{
}
}
public void actionPerformed (ActionEvent e)
{
if (x < 0 || x > 755)
{
velX = -velX;
}
if (y < 0 || y > 535)
{
velY = -velY;
}
x += velX;
y += velY;
repaint ();
}
public void vanster ()
{
grader -=5;
}
public void hoger ()
{
grader +=5;
}
public void keyPressed (KeyEvent e)
{
int kod = e.getKeyCode ();
if (kod == KeyEvent.VK_LEFT)
vanster ();
else if (kod == KeyEvent.VK_RIGHT)
hoger ();
repaint ();
}
public void keyTyped (KeyEvent e)
{
}
public void keyReleased (KeyEvent e)
{
}
}