Академический Документы
Профессиональный Документы
Культура Документы
Clase TransformacionesConMovimiento
package transformacionesconmovimiento;
import vistas.VentanaTransformaciones;
MODELO: PuntosTransformaciones
package transformacionesconmovimiento;
import java.awt.Color;
import modelos.*;
@Override
public void crearShapeOriginal() {
super.crearShapeOriginal();
//Se necesita para el oyente MoverPuntos
puntos = new Puntos();
for (Punto punto : original.getPuntos()) {
puntos.add(punto);
}
}
centroSimetria = null;
puntoA = null;
}
import java.awt.Graphics;
import java.util.ArrayList;
import modelos.*;
import vistas.PanelTransformaciones;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
PuntosTransformaciones t = (PuntosTransformaciones) trans;
//Dibuja los puntos en su nueva ubicación
ArrayList<Punto> puntos = t.getPuntos();
if (puntos != null) {
for (Punto pto : puntos) {
pto.dibujar(g);
}
}
}
}
CONTROLADOR: OyentePuntosTransformaciones
package transformacionesconmovimiento;
import controladores.OyenteMoverPuntos;
import java.awt.event.*;
import javax.swing.*;
public OyentePuntosTransformaciones(
PuntosTransformaciones trans, JPanel panel) {
super(trans.getPuntos(), panel);
this.trans = trans;
this.panel = panel;
}
@Override
// Se elimina para no permitir adicionar puntos
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
super.mouseDragged(e);
// Se vuelve a aplicar la transformación cada vez que se mueve
trans.getOriginal().ajustarPuntos();
if (nombre != null) {
hacerTransformacion();
}
}
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem origen = (JMenuItem) e.getSource();
nombre = origen.getName();
trans.limpiarValores();
hacerTransformacion();
}