Hola David, esta condición while (respuesta != mesSecreto) está mal expresada. respuesta es un String (un objeto, no es un tipo primitivo) y los String no se pueden comparar usando == ni !=
Para comparar objetos hemos de usar equals
while (respuesta.equals( mesSecreto) == false)
También es válido while (!respuesta.equals( mesSecreto))
El cambio obliga a modificar ligeramente la lógica para que el programa funcione bien quedaría así:
import java.util.Scanner;
public class MesSecreto {
// instance variables - replace the example below with your own
private String registroTeclado;
/**
* Constructor for objects of class MesSecreto
*/
public MesSecreto() { }
public static void main (String [] arg)
{
Scanner teclado = new Scanner (System.in);
String mes[] = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
String mesSecreto = mes[1];
System.out.println("Adivine el mes secreto. Introduzca el nombre del mes en minúsculas: ");
String respuesta="";
while (!respuesta.equals( mesSecreto)) {
respuesta=teclado.nextLine();
if (respuesta.equals(mesSecreto))
{ System.out.println("!Has acertado!");
respuesta=mesSecreto;
}
else
{
System.out.println("No ha acertado. Intente adivinarlo introduciendo otro mes:");
}
}
}
}
Saludos