// VistaElevador.java
// La vista para SimulacionElevador
package com.deitel.cpej5.elevador.vista;
// paquetes básicos de Java
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;
// paquete de extensión de Java
import javax.swing.*;
// paquetes de Deitel
import com.deitel.cpej5.elevador.evento.*;
import com.deitel.cpej5.elevador.ConstantesElevador;
public class VistaElevador extends JPanel
implements ActionListener, EscuchaSimulacionElevador,
ConstantesElevador {
// dimensiones de VistaElevador
private static final int ANCHURA_VISTA = 800;
private static final int ALTURA_VISTA = 435;
// desplazamiento para posicionar paneles en VistaElevador
private static final int DESPLAZAMIENTO = 10;
// el Elevador vuelve a dibujar los componentes cada 50 ms
private static final int RETRASO_ANIMACION = 50;
// constantes de distancia horizontal
private static final int DISTANCIA_PERSONA_A_BOTON = 400;
private static final int DISTANCIA_BOTON_A_ELEVADOR = 50;
private static final int DISTANCIA_PERSONA_A_ELEVADOR =
DISTANCIA_PERSONA_A_BOTON + DISTANCIA_BOTON_A_ELEVADOR;
// tiempos para caminar hacia el Boton del Piso y el Elevador
private static final int TIEMPO_A_BOTON = 3000; // 3 segundos
private static final int TIEMPO_A_ELEVADOR = 1000; // 1 segundo
// tiempo para viajar en el Elevador (5 segundos)
private static final int TIEMPO_VIAJE_ELEVADOR = 5000;
// imágenes de Puerta para la animación
private static final String cuadrosPuerta[] = {
"imagenes/puerta1.png", "imagenes/puerta2.png", "imagenes/puerta3.png",
"imagenes/puerta4.png", "imagenes/puerta5.png" };
// imágenes de Persona para la animación
private static final String cuadrosPersona[] = {
"imagenes/insecto1.png", "imagenes/insecto2.png", "imagenes/insecto3.png",
"imagenes/insecto4.png", "imagenes/insecto5.png", "imagenes/insecto6.png",
"imagenes/insecto7.png", "imagenes/insecto8.png" };
// imágenes de Luz para la animación
private static final String cuadrosLuz[] = {
"imagenes/luzApagada.png", "imagenes/luzEncendida.png" };
// imágenes de la Luz de los Pisos para la animación
private static final String cuadrosLuzPrimerPiso[] = {
"imagenes/luzPrimerPisoApagada.png",
"imagenes/luzPrimerPisoEncendida.png" };
private static final String cuadrosLuzSegundoPiso[] = {
"imagenes/luzSegundoPisoApagada.png",
"imagenes/luzSegundoPisoEncendida.png", };
// imágenes del Boton de Piso para la animación
private static final String cuadrosBotonPiso[] = {
"imagenes/botonPisoSinOprimir.png",
"imagenes/botonPisoOprimido.png",
"imagenes/botonPisoEncendido.png" };
// imágenes del Boton del Elevador para la animación
private static final String cuadrosBotonElevador[] = {
"imagenes/botonElevadorSinOprimir.png",
"imagenes/botonElevadorOprimido.png",
"imagenes/botonElevadorEncendido.png" };
// imágenes del Timbre para la animación
private static final String cuadrosTimbre[] = {
"imagenes/timbre1.png", "imagenes/timbre2.png",
"imagenes/timbre3.png" };
private static final String imagenPiso =
"imagenes/piso.png";
private static final String imagenTecho =
"imagenes/techo.png";
private static final String imagenElevador =
"imagenes/elevador.png";
private static final String imagenPared =
"imagenes/pared.jpg";
private static final String imagenConductoElevador =
"imagenes/conductoElevador.png";
// archivos de audio
private static final String sonidoTimbre = "timbre.wav";
private static final String sonidoPuertaAbrir = "puertaAbrir.wav";
private static final String sonidoPuertaCerrar = "puertaCerrar.wav";
private static final String sonidoElevador = "elevador.au";
private static final String sonidoBoton = "boton.wav";
private static final String sonidoCaminando = "caminar.wav";
private static final String sonidoMusicaElevador = "liszt.mid";
// objetos PanelImagen para los objetos Piso, ConductoElevador, pared y techo
private PanelImagen panelPrimerPiso;
private PanelImagen panelSegundoPiso;
private PanelImagen panelConductoElevador;
private PanelImagen panelPared;
private PanelImagen panelTecho;
// objetos PanelMovil para el Elevador
private PanelMovil panelElevador;
// objetos PanelAnimado para los objetos Boton, Timbre, Luz y Puerta
private PanelAnimado panelBotonPrimerPiso;
private PanelAnimado panelBotonSegundoPiso;
private PanelAnimado panelBotonElevador;
private PanelAnimado panelTimbre;
private PanelAnimado panelLuzElevador;
private PanelAnimado panelLuzPrimerPiso;
private PanelAnimado panelLuzSegundoPiso;
private PanelAnimado panelPuerta;
// objeto List que contiene a los objetos PanelAnimado para todos los objetos Persona
private java.util.List panelesAnimadosPersona;
// objetos AudioClip para los efectos de sonido
private AudioClip clipTimbre;
private AudioClip clipPuertaAbrir;
private AudioClip clipPuertaCerrar;
private AudioClip clipElevador;
private AudioClip clipBoton;
private AudioClip clipCaminar;
// musica a reproducir en el Elevador
private AudioClip clipMusicaElevador;
// objeto Timer para el controlador de la animación
private javax.swing.Timer timerAnimacion;
// distancia desde la parte superior de la pantalla para mostrar objetos Piso
private int posicionPrimerPiso;
private int posicionSegundoPiso;
// velocidad del Elevador
private double velocidadElevador;
// constructor de VistaElevador
public VistaElevador()
{
// especificar esquema nulo
super( null );
instanciarPaneles();
colocarPanelesEnVista();
inicializarAudio();
// calcular distancia que viaja el Elevador
double distanciaPiso =
posicionPrimerPiso - posicionSegundoPiso;
// calcular tiempo necesario para el viaje
double tiempo = TIEMPO_VIAJE_ELEVADOR / RETRASO_ANIMACION;
// determinar velocidad del Elevador (proporcion = distancia / tiempo)
velocidadElevador = ( distanciaPiso + DESPLAZAMIENTO ) / tiempo;
// iniciar subproceso de animación
iniciarAnimacion();
} // fin del constructor de VistaElevador
// instanciar todos los objetos Panel (objetos Piso, Elevador, etc.)
private void instanciarPaneles()
{
// instanciar objetos PanelImagen que representan a los objetos Piso
panelPrimerPiso = new PanelImagen( 0, imagenPiso );
panelSegundoPiso = new PanelImagen( 0, imagenPiso );
// calcular posiciones del primer y segundo Piso
posicionPrimerPiso =
ALTURA_VISTA - panelPrimerPiso.getHeight();
posicionSegundoPiso =
( int ) ( posicionPrimerPiso / 2 ) - DESPLAZAMIENTO;
panelPrimerPiso.establecerPosicion( 0, posicionPrimerPiso );
panelSegundoPiso.establecerPosicion( 0, posicionSegundoPiso );
panelPared = new PanelImagen( 0, imagenPared );
// crear y posicionar PanelImagen para ConductoElevador
panelConductoElevador =
new PanelImagen( 0, imagenConductoElevador );
double posicionX = DISTANCIA_PERSONA_A_ELEVADOR + DESPLAZAMIENTO;
double posicionY =
posicionPrimerPiso - panelConductoElevador.getHeight();
panelConductoElevador.establecerPosicion( posicionX, posicionY );
// crear y posicionar PanelImagen para el techo
panelTecho = new PanelImagen( 0, imagenTecho );
posicionY = panelConductoElevador.obtenerPosicion().getY() -
panelTecho.getHeight();
panelTecho.establecerPosicion( posicionX, posicionY );
// crear y posicionar Pa
没有合适的资源?快使用搜索试试~ 我知道了~
Java5-Ejemplos.zip_java programming_java5
共1184个文件
class:620个
java:379个
html:58个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2022-09-22
20:57:21
上传
评论
收藏 3.37MB ZIP 举报
温馨提示
Java Programming examples
资源详情
资源评论
资源推荐
收起资源包目录
Java5-Ejemplos.zip_java programming_java5 (1184个子文件)
elevador.au 13KB
hi.au 3KB
crearBaseDeDatos.bat 1KB
crearBaseDeDatos.bat 54B
crearBaseDeDatos.bat 54B
VistaElevador.class 13KB
ProcesadorTransacciones.class 7KB
ProcesadorTransacciones.class 7KB
SimulacionElevador.class 6KB
Elevador.class 5KB
ServidorDeitelMessengerSinBloqueo.class 5KB
GUICliente.class 5KB
GUICliente.class 5KB
ConsultaCreditos.class 5KB
ConsultaCreditos.class 5KB
ConductoElevador.class 5KB
ClienteTresEnRaya.class 4KB
Servidor.class 4KB
Cliente.class 4KB
PruebaMenu.class 4KB
EscribirArchivoAleatorio.class 4KB
EscribirArchivoAleatorio.class 4KB
CrearArchivoSecuencial.class 4KB
CrearArchivoSecuencial.class 4KB
ServletEncuesta.class 4KB
ServletEncuesta.class 4KB
LeerArchivoSecuencial.class 4KB
LeerArchivoSecuencial.class 4KB
Persona.class 4KB
LeerArchivoAleatorio.class 4KB
LeerArchivoAleatorio.class 4KB
OpsBitsMisc.class 4KB
MiscBitOps.class 4KB
DemoAparienciaVisual.class 3KB
PruebaProperties.class 3KB
PropertiesTest.class 3KB
CuentaTipoPalabras.class 3KB
ValidarFrame.class 3KB
CuentaTipoPalabras.class 3KB
AdministradorSocketsMensajes2.class 3KB
WordTypeCount.class 3KB
CaracteresAleatorios.class 3KB
MostrarAutores.class 3KB
ResultSetTableModel.class 3KB
MostrarResultadosConsulta.class 3KB
PruebaTiempo4.class 3KB
PruebaFile.class 3KB
ServidorTresEnRaya.class 3KB
Craps.class 3KB
PaqueteDeCartas.class 3KB
TicTacToeServer.class 3KB
IUBanco.class 3KB
BusquedaBinaria.class 3KB
Cliente.class 3KB
BinarySearch.class 3KB
VentanaPruebaTiempo2.class 3KB
CargarAudioYReproducir.class 3KB
VentanaPruebaTiempo.class 3KB
ServidorTresEnRaya$Jugador.class 3KB
AnimadorLogo.class 3KB
Servidor.class 3KB
MetodosStaticChar.class 3KB
Figuras.class 2KB
DemoTeclas.class 2KB
PanelAnimado.class 2KB
GUICliente$EscuchaConectar.class 2KB
GUICliente$EscuchaConectar.class 2KB
PanelImagen.class 2KB
MetodosStaticChar2.class 2KB
PruebaBotonOpcion.class 2KB
PruebaList.class 2KB
BuferCircular.class 2KB
KeyDemo.class 2KB
BeanDatosVisitante.class 2KB
RastreadorRaton.class 2KB
PruebaLista.class 2KB
MouseTracker.class 2KB
PruebaMath.class 2KB
UsoArrays.class 2KB
RadioButtonTest.class 2KB
MathTest.class 2KB
Puerta.class 2KB
ListTest.class 2KB
PruebaDivisionEntreCero.class 2KB
AdministradorSocketsMensajes2$SubprocesoReceptor.class 2KB
ArregloDoble.class 2KB
PruebaVector.class 2KB
PruebaBitSet.class 2KB
DivideByZeroTest.class 2KB
DoubleArray.class 2KB
BitSetTest.class 2KB
DemoBoxLayout.class 2KB
DesplazamientoBits.class 2KB
PruebaContextual.class 2KB
SelectorSitios.class 2KB
CompararString.class 2KB
PruebaSeleccionMultiple.class 2KB
PruebaSistemaNomina.class 2KB
MultipleSelectionTest.class 2KB
BitShift.class 2KB
共 1184 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
局外狗
- 粉丝: 64
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0