Este documento presenta un programa de dibujo que permite al usuario dibujar puntos arrastrando el mouse. El programa extiende la clase JPanel para agregar funcionalidad de dibujo y manejo de eventos del mouse. Al arrastrar el mouse, se almacenan las coordenadas de los puntos en un arreglo y se vuelve a dibujar el panel. El programa crea un objeto JFrame para mostrar el panel de dibujo.
1. IngenieríaenAnimación Digital
y EfectosVisuales
Asignatura: ProgramaciónOrientadaaObjetos
Profesor: ISC.LizbethHernándezOlán
Unidad3 Herencia Fecha: 04/05/17
Practica3 PanelDibujo Página 1 de 2
No.Control 16081980 NombredelAlumno ORTIZENCISOANTONIOALDAHIR
1.EnunciadodelProblema.
2.CódigoFuente
/* practica 3.
No.Control 16081980 ORTIZENCISOANTONIOALDAHIR
*/
import java.awt.Point;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;
public class PanelDibujo extends JPanel
{
private int cuentaPuntos = 0; // cuenta el número de puntos
// arreglo de 10000 referencias a java.awt.Point
private Point puntos[] = new Point[ 10000 ];
// establece la GUI y registra el manejador de eventos del ratón
public PanelDibujo()
{
// maneja evento de movimiento del ratón en el marco
addMouseMotionListener(
new MouseMotionAdapter() // clase interna anónima
{
// almacena las coordenadas de arrastre y vuelve a dibujar
public void mouseDragged( MouseEvent evento )
{
if ( cuentaPuntos < puntos.length )
{
puntos[ cuentaPuntos ] = evento.getPoint(); // busca el punto
cuentaPuntos++; // incrementa el número de puntos en el arreglo
repaint(); // vuelve a dibujar JFrame
} // ?n de if
} // ?n del método mouseDragged
} // ?n de la clase interna anónima
); // ?n de la llamada a addMouseMotionListener
} // ?n del pconstructor de PanelDibujo
// dibuja un óvalo en un cuadro delimitador de 4 x 4, en la ubicación especi?cada en la ventana
public void paintComponent( Graphics g )
{
super.paintComponent( g ); // borra el área de dibujo
// dibuja todos los puntos en el arreglo
for ( int i = 0; i < cuentaPuntos; i++ )
g. fillOval( puntos[ i ].x, puntos[ i ].y, 4, 4 );
} // ?n del método paint
}
/* practica 3.
No.Control 16081980 ORTIZENCISOANTONIOALDAHIR
*/
import java.awt.BorderLayout;
import javax.swing.JFrame;
2. import javax.swing.JLabel;
public class Pintor
{
public static void main( String args[] )
{
// crea objeto JFrame
JFrame aplicacion = new JFrame( "Un programa simple de dibujo" );
PanelDibujo panelDibujo = new PanelDibujo(); // crea panel de dibujo
aplicacion.add( panelDibujo, BorderLayout.CENTER ); // en el centro
// crea una etiqueta y la coloca en la región SOUTH de BorderLayout
aplicacion.add( new JLabel( "Arrastre el raton para dibujar" ),
BorderLayout.SOUTH );
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
aplicacion.setSize( 400, 200 ); // establece el tamaño del marco
aplicacion.setVisible( true ); // muestra el marco
} // ?n de main
}
3.Impresióndepantalla,sóloelresultadoobtenido(noimpresionesdecódigo)