Hola rubens23! El programa funciona bien. Como consejos de mejora tendriamos los siguientes:
No introducir un System.out.println dentro de un constructor. El constructor se usa para inicializar los campos de la clase.
El bucle do que has planteado se ejecuta siempre al menos una vez, puedes simplificarlo poniendo la condición al principio de modo que si se adivinó el número no se entre al bucle, de esta manera
while ( entr != adv){
if (entr < adv){
System.out.println("No has acertado: el número aleatorio es mayor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
if (entr >adv){
System.out.println("No has acertado: el número aleatorio es menor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
}
También me parece que si utilizas ventanas deberías mostrar todos los mensajes usando ventanas, no mezclar la ventana con la consola porque no se sabe muy bien dónde hay que mirar.
Saludos cordiales