Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo escribir el código de whack-a-mole?

¿Cómo escribir el código de whack-a-mole?

paquete com.lzw;

importar java.awt.EventQueue;

importar java.awt.event.MouseAdapter;

importar java.awt.event.MouseEvent;

importar javax.swing.ImageIcon;

importar javax.swing.JFrame;

importar javax.swing.JLabel;

la clase pública Shrewmouse extiende JFrame implementa ratones Runnable {

private JLabel[] //Almacena la matriz de etiquetas que muestra el número base

private ImageIcon imgMouse; //Objeto de imagen del mouse terrestre

public static void main(String args[]){

EventQueue.invokeLater(new Runnable(){

ejecución pública void (){

try{

Shrewmouse frame=new Shrewmouse(); //Crear formulario

frame.setVisible(true); //Mostrar formulario

p>

new Thread(frame).start(); //Iniciar el hilo

}catch(Exception e){

e.printStackTrace();

}

}

});

}

público Musaraña(){

super ();

this.setResizable(false); //Prohibir cambiar el tamaño del formulario

this.getContentPane().setLayout(null); no utilizar la gestión de diseño

This.setTitle("Simple Whack-a-Mole Game"); //Establecer el título del formulario

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ImageIcon img=new ImageIcon(getClass().getResource("background.jpg"));

//Inicializa la imagen de fondo

imgMouse=new ImageIcon( getClass().getResource ("mouse1.jpg"));

//Inicializa el objeto de imagen del hámster

mouses=new JLabel[6] //Crea una matriz de etiquetas para mostrar el hámster

for(int i=0;ilt;6;i){ //Atravesar la matriz

m

ouses[i]=new JLabel(); //Inicializa cada elemento de la matriz

mouses[i].setSize(imgMouse.getIconWidth(), imgMouse.getIconHeight());

//Configura la etiqueta para que tenga el mismo tamaño que la imagen del mouse

mouses[i].addMouseListener(new MouseAdapter(){//Agrega un adaptador de escucha de eventos del mouse para la etiqueta

/**

* Métodos para manejar eventos de clic del mouse

*/

@Override

public void mouseClicked(MouseEvent e) {

Object source=e.getSource(); //Obtiene el origen del evento, es decir, la etiqueta de gopher

if(sourcestanceof JLabel){ //Si el evento es un componente de etiqueta

JLabel mouse=(JLabel)source //Conversión forzada a etiqueta JLabel

mouse.setIcon(null); //Cancelar icono de etiqueta

}

}

});

this.getContentPane().add(mouses[i]); //Agrega una etiqueta que muestre la tuza a el formulario

}

mouses[0].setLocation(253, 300); //Establece la posición de cada etiqueta

mouses[1].setLocation; (333, 250);

mouses[2].setLocation(388, 296);

mouses[3].setLocation(362, 364);

mouses[4].setLocation(189, 353);

mouses[5].setLocation(240, 409);

final JLabel backLabel=new JLabel(); Cree una etiqueta que muestre el fondo

backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());

this.setBounds(100, 100, img.getIconWidth(), img.getIconHeight() );

backLabel.setIcon(img); //Agregar fondo a la etiqueta

this.getContentPane().add(backLabel) ; //Agregar etiqueta de fondo al formulario

This.getContentPane().add(backLabel); //Agregar etiqueta de fondo al formulario

p>

}

/**

* Método principal del hilo

*/

public void run(){

while(true ){ //Usar bucle infinito

try{

Thread.sleep(3000);

//Dormir el hilo durante 3 segundos

int index=(int)(Math.random()*6); //Generar un índice de hámster aleatorio

if(mouses[index); ].getIcon()==null){ //Si la etiqueta del hámster no tiene una imagen configurada

mouses[index].setIcon(imgMouse); //Agrega una imagen del hámster a la etiqueta

}

}catch(InterruptedException e){

e.printStackTrace();

}

}

}

}