En el dia de hoy, quiero compartir este codigo el cual permite mover un boton en una ventana manteniendo el click presionado y dirigiendo el boton hacia donde queremos, este truco lo necesito para mi proyecto dominz, donde se implementara cuando el jugador desee colocar fichas en la zona de juego seleccionandola y arrastrandola con el mouse, a continuacion el codigo. No olvidar que nuestra clase debe implementar la interfaz MouseMotionListener.
clase principal(main)
package moverobjeto;
public class MoverObjeto {
public static void main(String[] args) {
juego mijuego=new juego();
mijuego.ventana();
}
}
clase de la ventana:
public class juego implements MouseMotionListener {
public void ventana(){
JFrame miventana =new JFrame ();
JButton miboton=new JButton();
miventana.setSize(400, 400);
miventana.setLocationRelativeTo(null);
miventana.setLayout(null);
miventana.setResizable(false);
miboton.setBounds(50, 50, 60, 80);
miboton.addMouseMotionListener(this);
miventana.add(miboton);
miventana.setVisible(true);
}
@Override
public void mouseDragged(MouseEvent e) {
int x=e.getX();
int y=e.getY();
miboton.setLocation(x, y);
miboton.repaint(x, y,miboton.getWidth(), miboton.getHeight());
}
@Override
public void mouseMoved(MouseEvent e) {
}
}
clase principal(main)
package moverobjeto;
public class MoverObjeto {
public static void main(String[] args) {
juego mijuego=new juego();
mijuego.ventana();
}
}
clase de la ventana:
public class juego implements MouseMotionListener {
public void ventana(){
JFrame miventana =new JFrame ();
JButton miboton=new JButton();
miventana.setSize(400, 400);
miventana.setLocationRelativeTo(null);
miventana.setLayout(null);
miventana.setResizable(false);
miboton.setBounds(50, 50, 60, 80);
miboton.addMouseMotionListener(this);
miventana.add(miboton);
miventana.setVisible(true);
}
@Override
public void mouseDragged(MouseEvent e) {
int x=e.getX();
int y=e.getY();
miboton.setLocation(x, y);
miboton.repaint(x, y,miboton.getWidth(), miboton.getHeight());
}
@Override
public void mouseMoved(MouseEvent e) {
}
}
No hay comentarios:
Publicar un comentario