// YA FUNCIONAN LOS ARRASTRAS Y LOS REDIMENSIONAMIENTOS // x = getBounds().width import java.awt.*; import javax.swing.*; import java.awt.event.*; class Boton extends JButton implements ActionListener, MouseListener { String CAD=""; int Tecla = 0; public Boton(String CAD) { this.CAD = CAD; this.setText(CAD); addActionListener(this); addMouseListener(this); } // ACTION_LISTENER public void actionPerformed(ActionEvent EVENTO) { CAD = EVENTO.getActionCommand(); if ( CAD.compareTo("SPEED")==0 ); if ( CAD.compareTo("_SALIR_")==0 ) System.exit(0); if ( CAD.compareTo("+ / -")==0 ); } // MOUSE_LISTENER public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mousePressed(MouseEvent e) { Tecla = e.getButton(); } } public class ANIMACION_4 extends JFrame implements MouseListener, MouseMotionListener { int Tecla = 0; // Tecla pulsada NuevoHilo Movil = new NuevoHilo( "<>", Color.red ); Boton B_VEL = new Boton("SPEED"); // Boton de Inicia y Para (B_IP) Boton B_PEL = new Boton("+ / -"); // Boton de +pelotas o -pelotas (B_NP) Boton B_EXIT = new Boton("_SALIR_"); // Boton de salida (B_EXIT) boolean OK = false; // Inicialmente la animaciOn estA detenida public static void main(String R[]) { new ANIMACION_4(); } public ANIMACION_4() { this.getContentPane().setLayout(null); this.setTitle("ANIMACION 1.0"); this.setResizable(false); this.setLocation(100, 100); this.setSize(new Dimension(800, 500)); add(Movil); Movil.setBounds(30, 30, 600, 300); // Se inserta el botOn, se posiciona, se le pone color del fondo, color del texto y captura de eventos del ratON add(B_VEL); B_VEL.setBounds(60, 360, 90, 30); B_VEL.setBackground(Color.blue); B_VEL.setForeground(Color.yellow); add(B_PEL); B_PEL.setBounds(240, 360, 90, 30); B_PEL.setBackground(Color.blue); B_PEL.setForeground(Color.yellow); add(B_EXIT); B_EXIT.setBounds(420, 360, 90, 30); B_EXIT.setBackground(Color.blue); B_EXIT.setForeground(Color.yellow); this.addMouseListener( this ); this.addMouseMotionListener( this ); setVisible(true); } // INTERFAZ MOUSE_LISTENER // tecla 1 = tecla izquierda tecla 3 = tecla derecha public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mousePressed(MouseEvent e) { Tecla = e.getButton(); } // INTERFAZ MOUSE_MOTION_LISTENER public void mouseMoved(MouseEvent e) { } public void mouseDragged(MouseEvent e) { int x=0; Boton B = null; if ( CercaDe(e.getX(), e.getY(), B_VEL).compareTo("SPEED")==0 ) B=B_VEL; else if ( CercaDe(e.getX(), e.getY(), B_PEL).compareTo("+ / -")==0 ) B=B_PEL; else if ( CercaDe(e.getX(), e.getY(), B_EXIT).compareTo("_SALIR_")==0 ) B=B_EXIT; if ( B != null && Tecla == 1 ) B.setBounds(e.getX(), e.getY(), B.getWidth(), 30); if ( B != null && Tecla == 3 ) B.setBounds(B.getX(), B.getY(), e.getX()-B.getX(), 30); } String CercaDe(int X, int Y, Boton B) { if ( (X >= B.getX()-15 && X <= B.getX()+B.getWidth()+15 && Y >= B.getY()-15 && Y <= B.getY()+B.getHeight()+15) ) return B.getActionCommand(); return ""; } } // INTERFAZ MOUSE_WHEEL_LISTENER // ============================= //class RatonRuedita extends MouseWheelListener //{ public void mouseWheelMoved(MouseWheelEvent e) { System.out.println("uso de la ruedita ... "); } }