This repository has been archived by the owner on Apr 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
JPanelGrafico2.java
127 lines (113 loc) · 3.25 KB
/
JPanelGrafico2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class JPanelGrafico2 extends JPanel {
private Circulo circulo;
private int contador;
private Sentido direccion;
private String mensaje;
private Punto destino;
public JPanelGrafico2(Circulo circulo) {
this.circulo = circulo;
this.contador = 0;
this.direccion = Sentido.DERECHA;
this.mensaje = "";
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLUE);
g.fillOval((int) circulo.getCentro().getX() - ((int) circulo.getRadio()/2), (int) circulo.getCentro().getY() - ((int) circulo.getRadio() / 2), (int) circulo.getRadio(),
(int) circulo.getRadio());
g.setColor(Color.BLACK);
g.drawString(mensaje, 400, 10);
}
public Circulo getCirculo() {
return this.circulo;
}
public void setCirculo(Circulo circulo) {
this.circulo = circulo;
}
public void setDireccion(Sentido direccion) {
this.direccion = direccion;
}
public void setPuntoDestino(Punto destino) {
this.destino = destino;
}
public void incrementaContador() {
this.contador++;
this.mensaje = "Cambios de Dirección: " + this.contador;
}
public void mensajeMovimiento() {
this.mensaje = "Centro (x: " + this.circulo.getCentro().getX() +
" , y: " + this.circulo.getCentro().getY() + ")";
}
public void mover() {
if(direccion == Sentido.DERECHA) {
circulo.desplazarHorizontalmente(3);
}
if(direccion == Sentido.IZQUIERDA) {
circulo.desplazarHorizontalmente(-3);
}
if(direccion == Sentido.ARRIBA) {
circulo.desplazarVerticalmente(-3);
}
if(direccion == Sentido.ABAJO) {
circulo.desplazarVerticalmente(3);
}
repaint();
}
public void moverAOtroPunto() {
new Thread() {
public void run() {
if(circulo.getCentro().getX() <= destino.getX()) {
for(int i = (int)circulo.getCentro().getX() - - (int) circulo.getRadio(); i <= ((int)destino.getX() ); i+=3) {
circulo.getCentro().setX((double) i);
try {
Thread.sleep(15);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
else {
for(int i = (int)circulo.getCentro().getX(); i >= (int)destino.getX(); i-=3) {
circulo.getCentro().setX((double) i);
try {
Thread.sleep(15);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
if(circulo.getCentro().getY() <= destino.getY()) {
for(int i = (int)circulo.getCentro().getY(); i <= (int)destino.getY(); i+=3) {
circulo.getCentro().setY((double) i);
try {
Thread.sleep(15);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
else {
for(int i = (int)circulo.getCentro().getY(); i >= (int)destino.getY(); i-=3) {
circulo.getCentro().setY((double) i);
try {
Thread.sleep(15);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
}
}.start();
}
}