Download Examen de Programación Avanzada (Cuestiones)
Document related concepts
no text concepts found
Transcript
Examen de Programación Avanzada para Internet
Convocatoria ordinaria. 5 de Febrero de 2007.
Duración: 45 min
Puntuación sobre 3. Entregar la pregunta 1 por separado
Cuestión 1. (1 punto)
El fragmento de programa que aparece debajo construye una Interfaz Gráfica(ver imágenes), donde
el JFrame contiene dos JPanel, uno en el centro llamado zonaJuego que contiene una serie de
JButton y otro llamado contadores situado a la derecha que contiene un JTextFiel. Además, se
selecciona uno de los botones al azar quedando referenciado por la variable botonEscondido.
Diseñar una clase Oyente que implemente un juego con las siguientes reglas:
1. Si el botón pinchado es el escondido se cambia su texto a “0” y se acaba la partida
2. Si el botón pinchado no es el escondido se cambia su texto a “X” y se continua jugando
3. El contador se incrementa sólo si se pincha un botón que no ha sido ya pinchado
4. Cuando se acaba la partida el contador no cambia de valor.
Las siguientes imágenes muestran el inicio y el final de una partida (en la que se han pinchado diez
botones antes de encontrar el botonEscondido) respectivamente:
…
Se deben controlar las variables botonEscondido, jugando, contador y marcador
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Alea extends JFrame
{private static final int FILAS = 3, int COLUMNAS = 5;
private JButton botonEscondido;
private boolean jugando = false;
private int disparos = 0;
private JTextField marcador = new JTextField(""+disparos);
Alea()
{this.setLayout(new BorderLayout());
JPanel zonaJuego = new JPanel(), contadores = new JPanel();
contadores.setLayout(new FlowLayout());
contadores.add(marcador);
add(contadores,BorderLayout.EAST);
zonaJuego.setLayout(new GridLayout(FILAS, COLUMNAS));
Oyente oyente = new Oyente();
JButton [] botones = new JButton[FILAS * COLUMNAS];
for(int i = 0; i < botones.length; i++)
{botones[i]=new JButton("?");
zonaJuego.add(botones[i]);
botones[i].addMouseListener(oyente);}
add(zonaJuego,BorderLayout.CENTER);
botonEscondido = botones[(int) (Math.random()*FILAS * COLUMNAS)];
jugando = true;
setSize(FILAS*100,(COLUMNAS+1)*30);
setVisible(true);
}//Fin del constructor
}//Fin de la clase
Cuestión 2. (1 punto)
A través de la tecnología RMI, un programa Java (cliente) puede invocar la ejecución de un método
de un objeto Java que reside en otra máquina (servidor). Comenta brevemente las siguientes
cuestiones:
1. ¿Qué características tienen que tener los objetos utilizados en la invocación del método
remoto y los objetos devueltos como resultados?.
2. ¿Es necesario que el programa servidor este en ejecución?
3. ¿Cómo hace accesibles el servidor los métodos de los objetos remotos?
4. ¿Es posible implementar un Chat de salón usando RMI?
Cuestión 3. (1 punto)
Un servlet es un programa Java específico para ser ejecutado en un servidor web o contenedor de
servlets. Un applet es un programa Java específico para ser ejecutado en un navegador web.
Comenta brevemente las siguientes cuestiones:
1. Indica dos posibles aplicaciones de uso de los servlets y dos de los applets en el entorno
web.
2. ¿Un programa servlet únicamente se puede comunicar con el servidor web que lo aloja?
3. ¿Un servlet sólo se puede invocar a través de una página web?. En caso contrario indica en
que situaciones.
4. ¿Un programa servlet sólo se puede comunicar con un applet?
Related documents