Código fuente java de bola rodante
Importar Java.awt.*;
Importar Java.awt.event.*;
Importar javax.swing.*;
//Clase Checkers
La clase pública Checkers extiende JFrame para implementar ActionListener {
//Definición de variable
CheckersPanel checkers = new CheckersPanel( ) ;
Botón de inicio JButton = nuevo JButton(" inicio ");
Botón de parada JButton = nuevo JButton(" parada ");
//Constructor
Inspector público(){
Super("damas");
setSize(210, 170);
setDefaultCloseOperation( JFrame .
EXIT _ ON _ CLOSE);
panel JPanel = nuevo JPanel();
borde BorderLayout = nuevo panel BorderLayout();
pane.add(damas, "centradas");
panel de botones JPanel = nuevo JPanel();
botón de inicio. ;
panel de botones . add(botón de inicio);
botón de parada . addactionlistener(this);
botón de parada habilitado(false); p>
p>
panel de botones. add(botón de parada);
pane.add(buttonPanel, "Sur");
setContentPane(pane);
show();
}
//Respuesta a las operaciones del usuario
acción de anulación pública realizada (ActionEvent evt){
if (evt . getsource()= = botón de inicio){
reproducir animación();
botón de inicio habilitado(false); >
botón de parada habilitado(true);
} De lo contrario {
detener animación()
botón de inicio habilitado(. verdadero);
p>
botón de parada habilitado (falso);
}
}
//Principal. función
Public static void main(String[] argumentos){
Damas CK = new Checkers();
}
}
//Clase CheckersPanel
La clase CheckersPanel extiende JPanel para implementar Runnable{
//Definición de variable
Corredor de subprocesos privado;
p>
int xPos = 5;
int x move = 4;
//Reproducir animación
void reproducir animación(){
if(corredor == null ); {
corredor = nuevo hilo (este
corredor
}<); /p>
}
//Detener animación
void stopAnimation(){
if (¡corredor! = null); {
corredor = null
}
}
//Ejecutar
Vacío público run(){
hilo este hilo = hilo . hilo actual();
while(runner ==thisThread){
xPos+= x movimiento;
if((xPos & gt; 105)|(xP
os<5))
xMove * =-1;
repaint();
Prueba {
thread .sleep (100 );
}catch(interrupción excepción e){}
}
}
//Haz un dibujo
Public void paintComponent (componente de gráficos) {
gráficos 2d comp 2d = (gráficos 2d)comp;
comp2d establece color (color . azul);
comp2D.fillRect(0, 0, 100, 100);
comp2d .color establecido (color . blanco);
comp2D.fillRect(100, 0, 100, 100);
comp2d . establecer color (color . negro);
comp2D.fillOval(xPos, 5, 90, 90); p>
}