Vamos a realizar un programa de escritorio usando Java Swing. Consiste en hacer un juego de adivinar la suma de dos números generados aleatoriamente.
Necesitamos los siguientes controles:
- 6 JTextField
- 6 JLabel
- 3 JButton
Un botón se encargará de generar y mostrar los dos números aleatorios, el siguiente botón activa una ventanita para introducir la suma de esos dos y comprobar si es correcta (acierto) o no (fallo) y mostrará el número de intentos realizados.
Y por último un botón para quitar la aplicación.
Como se trata de una aplicación gráfica es necesario importar las librerías javax.swing.* y java.awt.*.
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class Aleatorio extends JFrame{
public Aleatorio(){
//..
//..
}
}
Los controles a usar para los que utilizaremos las clases JTextField y JButton:
final private JTextField txtNum1,txtNum2,txtResultado,txtIntentos,txtAciertos,txtFallas;
private JButton btnActiva,btnComprueba;
private JButton btnSalir;
También necesitamos definir las variables que controlarán los valores aleatorios y su suma, así como los aciertos, fallos e intentos:
//los dos números tomarán un valor aleatoriamete
private long num1,num2,valor;
//la suma
long suma_prog;
int intentos=0,aciertos=0,fallas=0;
Para generar los números aleatorios creamos una función:
public long obtenerAleatorio1(){
return (long)(Math.random()*1000);
}
Puedes leer más información sobre como crear un número aleatorio con Java.
Ahora pasamos a codificar los botones Activar, Comprobar y Salir.
Activar
Este botón inicia el juego, para ello lo que hacemos es crear dos números aleatorios, con la clase creada anteriormente, y los ponemos dentro de los campos de texto sus valores.
btnActiva= new JButton("Activar");
btnActiva.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Aleatorio aleatorio=new Aleatorio();
aleatorio.setNum1(aleatorio.obtenerAleatorio1());
aleatorio.setNum2(aleatorio.obtenerAleatorio2());
txtNum1.setText(String.valueOf(aleatorio.getNum1()));// no. 1
txtNum2.setText(String.valueOf(aleatorio.getNum2()));// no.2
txtResultado.setText("");
}
});
Comprobar
Es el botón que lanza el juego, lo que hace es crear un dialogo, mediante una clase JOptionPane. Cogemos el valor insertado por el usuario y comprobamos si coincide con la suma de los números aleatorios. Si es así incrementamos los aciertos, si no coincide, incrementamos los fallos.
btnComprueba= new JButton("Comprobar");
btnComprueba.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Aleatorio alea=new Aleatorio();
valor=Long.parseLong(JOptionPane.showInputDialog("Introduce valor"));
alea.setValor(valor);
txtResultado.setText(String.valueOf(alea.getValor()));//valor del usuario
suma_prog=Long.parseLong(txtNum1.getText())+ Long.parseLong(txtNum2.getText());
if(suma_prog==alea.getValor()){
aciertos+=1;
intentos+=1;
txtIntentos.setText(String.valueOf(intentos));
txtAciertos.setText(String.valueOf(aciertos));
}else{
fallas+=1;
intentos+=1;
txtIntentos.setText(String.valueOf(intentos));
txtFallas.setText(String.valueOf(fallas));
}
}
});
Salir
En este caso, lo que hacemos es salir de la aplicación mediante el método System.exit.
btnSalir= new JButton("Salir");
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
Espero les sea de utilidad.