Código fuente java completo
¿Importar? java.awt.event.*;
¿Importar? java.awt.geom.*;
¿Importar? java.util.*;
¿Importar? javax . swing *;
/**
*? Abra el Administrador de tareas de Windows y podrá ver los cambios del hilo. ? Puede buscar, ejecutar el método()/. Inicio()
*?
*?Du:? Experiencia con habilidades procesales:? ¿La llamada producción de una bola pequeña, es decir? ¿Nuevo? ¿Su objeto de clase, sus propiedades llevan el método de sacar la pelota? ¿Coordenadas, colores, contenedores? y otros parámetros.
*?
*?Una clase cuyas propiedades se utilizan como contenedores de parámetros. Método...completa la función.
*?*/
//?Clase de carrera
¿Público? ¿clase? ¿Depresión resiliente? {
//
¿Público? ¿Electricidad estática? ¿Vacío? principal(Cadena[]?args)? {
¿JFrame? ¿marco? =?Nuevo? BouncePressFrame();? // Generar ventana. Ejecutar la construcción. -Lógica empresarial.
frame.setdefaultcloseoperation(JFrame.EXIT_ON_CLOSE);? //?¿semejanza? a
//?Ventana
//?Listener
frame show();
}
¿Clase? ¿BouncePressFrame? ¿extender? JFrame? {
¿Privado? ¿Campo de béisbol? Lienzo;
¿Público? ¿BouncePressFrame()? {
setSize(600,?500);? //Tamaño de ventana
setTitle("¿Rebote? Pelota");
¿Contenedor? ¿Panel de contenido? =?getContentPane();? //La ventana de Swing no puede colocar cosas directamente, solo se puede colocar en su ContentPane.
¿Lienzo? =?Nuevo? lienzo de prensa de pelota();? //Generar un nuevo panel. -canvas
contentPane.add(canvas,BorderLayout.center);? //¿Centro de ventanas? Añade este panel.
¿JPanel? botón¿Panel? =?Nuevo? JPanel();? //Luego genera un nuevo panel. -Panel de botones
//?Llame a este método addButton.
addButton(panel de botones,?"Inicio",?//?Generar un botón "Inicio"--Agregar panel panel de botones.
¿Nuevo?ActionListener()?{? / /?|-& gt; oyente de acción.
Público? actionPerformed(ActionEvent?evt)? {?//?|?El objeto del contenedor de bolas
addBall(Thread. NORM_PRIORITY?-?4,?Color.Black);? //Al procesar el evento, ejecute el método -addBall() ->Generar una bola (objeto de parámetro)->;Agregar a la lista. sacando la pelota
}
});? ///? Presione una vez, addBall() una vez -> generar una nueva bola -> agregar a la lista -> comenzar a dibujar esta nueva bola.
//?-& gt;BallPressThread->Run() de Ball (objeto de parámetro). mover () -> Cada vez que dibujes, muévete primero, luego juzga y luego dibuja.
//?-& gt; Objeto Canvas de la clase BallPressCanvas.
paint()->Ajusta automáticamente el paintComponent(Graphics) de la clase BallPressCanvas.
//?g) método.
//?-& gt;En este método, todas las bolas, la I-ésima bola, se eliminan de la lista, -->;Ajusta el campo de béisbol.
//?. método draw() -> Dibujar una bola ajustando el método Graphics2D. - usando color/
addButton(ButtonPanel,?"Express",?new?ActionListener()?{
Público?Void?actionPerformed(ActionEvent?evt)?{
addBall(thread.NORM_PRIORITY?+?2,?color. rojo);
}
});
addButton(Panel de botones, ? nuevo ? ActionListener()? { ? actionPerformed(ActionEvent? evt)? ;
}
¿público? ¿Vacío? addButton(¿Contenedor?c,?Cadena?Título,?ActionListener?Listener)? {
¿Botón J? ¿Botón? =?Nuevo? JButton(título);? //Generar un botón.
c.add(botón);? //Agregar al contenedor.
botón.addActionListener(oyente);? //?¿Abotonar? Oyente de acción.
}
/**?Método de negocio principal. ? */
¿Público? ¿Vacío? addBall(int? prioridad,? color? color)? {
//?¿Una generación? Pelota (objeto de parámetro)
¿Campo de béisbol? ¿b? =?Nuevo? campo de béisbol(lienzo, color);? //? Genera un objeto BallPress, llévalo e inicialízalo.
//?Dibuja una bola esférica, parámetros requeridos: componente del contenedor, color requerido: negro/rojo.
//?La pelota se une? en la lista.
lienzo . agregar(b);? //¿Lienzo del panel? ¿En una lista de matriz? Agrega un objeto de campo de béisbol.
¿Línea de bolígrafo? ¿Hilo? =?Nuevo? Rosca de presión de bola (b);? //? Genera el objeto BallPressThread, una clase de hilo para dibujar bolas. Pase el objeto BallPress (lleva la información necesaria para dibujar la bola.
//?Contenedor, parámetros de color).
thread.setPriority(prioridad);
thread.start();? //?¿Llamar? correr(),? ¿pelota? ¿comenzar? ¿A dónde ir? Mover
//?Comienza el sorteo de la bola. -> Ejecución de BallPressThread() -> bola (objeto de parámetro). mover ()->Mover primero, luego dibujar. canvas . paint-& gt;Clase de lienzo de campo de béisbol
}
}
//? Clase de hilo para dibujar la pelota.
¿Clase? ¿Línea de bolígrafo? ¿extender? ¿Hilo? {
¿Privado? ¿Campo de béisbol? b;
¿Público? BallPressThread(BallPress?aBall)? {
b? =?aBall
}
//?Comienza el sorteo de la bola.
¿Público? ¿Vacío? correr()? {
¿Probarlo? {
¿Para qué? (int?i?=?1;?i?<=?1000;?i++)? {?//?Dibujar 1000 veces.
b . mover();? //Cada vez que dibujes, muévete primero, luego juzga y luego dibuja.
Dormir(5);? //Entonces la pelota se mueve más lento que Bounce.java.
}
}?¿Atrapar? (¿Excepción de interrupción? e)? {
}
}
}
//? Clase de panel oscilante.
//?Función 1)? Este objeto del panel. método paint() -> dibuja automáticamente el panel y ajusta automáticamente el método paintComponent (gráficos
//?g), --> anula este método para dibujar el panel (y sus componentes).
//?Personaje 2)? ¿Este tipo de objeto? ¿Lista de matrices de propiedades? Bolas: también funciona como contenedor para bolas (objetos de parámetro).
¿Clase? ¿Campo de béisbol? ¿extender? JPanel? {
¿Privado? ¿Lista de matrices? ¿Huevos? =?Nuevo? ArrayList();
¿Público? ¿Vacío? Suplemento (¿uniforme de béisbol? b)? {
bolas . agregar(b);? //Agrega una bola a la lista de matriz. Cuando presionas el botón y agregas varias bolas, todas se guardan en esta lista.
}
//?¿Reescribir? ¿Javax.swing.JComponent? Método PaintComponent(). El método
//?paint() llama automáticamente a este método.
¿Público? ¿Vacío? paintComponent(gráficos?g)? {
super .componente de pintura(g);
¿Gráficos2D? g2? =?(Gráficos2D)? g;
¿Para qué? (int?i?=?0;?i?<?balls.size();?i++)? {?//?Transmisión
¿Estadio de béisbol? ¿b? =?(campo de béisbol)? bolas .get(I);? //Obtener la primera bola de la lista,
b. draw(G2);? //Dibuja esta bola.
}
}
}
/**
*?Dibuja una bola.
*?
*?¿Estás en línea? Dibuja una pequeña bola de color en el lienzo.
*?
*? atributo, que se puede utilizar para llevar los parámetros necesarios para dibujar la pelota.
*?
*?
*?
*?@Autor? Du Kongan
*?
*/
¿Clase? ¿Campo de béisbol? {
¿Privado? ¿Componentes? Lienzo;
¿Privado? ¿color? Color;
¿Privado? int? ¿incógnita? =?0;
¿Privado? int? ¿y? =?0;
¿Privado? int? ¿dx? =?2;
¿Privado? int? morir? =?2;
//?Estructura? inicialización? ¿recipiente? ¿color? parámetro.
¿Público? ¿Campo de béisbol(componente?c,?color?aColor)? {
¿Lienzo? =?c;
¿Color? =?aColor
}
//?Establece la posición y dibuja la pelota.
¿Público? ¿Vacío? dibujar (Gráficos2D? g2)? {
g2.setColor(color);
g2.fill(new?Ellipse2D.Double(x,y,?15,?15));? //?Oval:ovate
}
//?Mover la pelota.
//?Cada vez que dibujes, muévete primero, luego juzga y luego dibuja.
//?Cada vez que se ejecuta este método, ¿dibuja las coordenadas del punto inicial de la pelota? (x, y),? +2 cada vez,? Es decir, muévete en diagonal hacia la parte inferior derecha.
¿Público? ¿Vacío? mover()? {
x? +=?dx;? //?x = x+dx;? ¿Dibujar las coordenadas iniciales de la pelota? (x, y),? +2 cada vez,? Es decir, muévete en diagonal hacia la parte inferior derecha.
y? +=?dy;? ///?y = y+dy;
¿Si? (x?<?0)?{?//?La pelota llega al límite izquierdo. De acuerdo, comience a dibujar desde el borde izquierdo.
x? =?0;
dx? =?-dx;? //El valor de cambio de la abscisa de la bola se invierte. Iniciar movimiento inverso.
}
¿Y si? (x?+?15?& gt=?canvas.getWidth())? {?//?El lado derecho de la pelota llega al lado derecho del tablero de dibujo.
x? =?canvas.getWidth()? -?15;
dx? =?-dx;? //Iniciar movimiento inverso.
}
¿Y si? (y?<?0)?{?//?Promesa, comenzando desde el cuadro superior.
y? =?0;
dy? =?-dy;
}
¿Si? (y?+?15?& gt=?canvas.getHeight())? {?//?La pelota ha llegado a la parte superior de la mesa de dibujo.
y? =?canvas.getHeight()? -?15;
dy? =?-dy;
}
lienzo pintura(lienzo. obtener gráficos());? //Dibuja el objeto del panel lienzo-(y todos los componentes que contiene)
//?//.paint() método, llamado automáticamente.
}
}
/*¿Importar? java.awt.*;
¿Importar? java.awt.event.*;
¿Importar? java.awt.geom.*;
¿Importar? java.util.*;
¿Importar? javax . swing *;
*//**
*? No se puede buscar, ejecute el método()/. start()
*//*
¿Público? ¿clase? ¿rebotar? {
¿Público? ¿Electricidad estática? ¿Vacío? principal(Cadena[]?args)? {
¿JFrame? ¿marco? =?Nuevo? cuadro de rebote();
frame.setdefaultcloseoperation(JFrame.EXIT_ON_CLOSE);? //?¿semejanza? a
//?Ventana
//?Listener
frame show();
}