Buenas gente. Estoy intentando crear una interfaz que me permita temporizar un apagado, ya que mi hermana no se aclara con eso de escribir shutdown en una pantallita negra con letras blancas... xD
Pues os muestro el código que lo haría todo...
public void apagar() {
try {
if(radAnular.isEnabled()) {
String []cmd
= {"shutdown",
"-a"}; cambiaTexto("Apagado anulado");
} else {
if(radApagar.isEnabled()) {
modo = "-s";
if(radHora.isEnabled()) {
} else {
}
cambiaTexto("Apagado programado");
} else if(radHibernar.isEnabled()) {
modo = "-h";
if(radHora.isEnabled()) {
} else {
}
cambiaTexto("Hibernación programada");
} else {
modo = "-r";
if(radHora.isEnabled()) {
} else {
}
cambiaTexto("Reinicio programado");
}
String [] cmd
= {"shutdown", modo,
"-f",
"-t",
""+calcularTiempo
()}; }
System.
out.
println("ERROR: "+e.
toString()); cambiaTexto("Ha ocurrido un error");
}
}
El primer fallo que no comprendo es que siempre entra en el "anular" (esto lo se porque en la GUI me pone "APAGADO ANULADO").
Los que empiezan por rad son JRadioButton que los tengo agrupados así...
grupAccion.add(radApagar);
grupAccion.add(radHibernar);
grupAccion.add(radReiniciar);
grupAccion.add(radAnular);
grupCom.add(radHora);
grupCom.add(radTiempo);
Por defecto los toma todos como enabled y no como yo los marco en la GUI.
El segundo fallo es que no intenta apagarme el ordenador... He probado incluso poniendo al principio del try un
Runtime.getRuntime().exec(new String[]{"shutdown", "-h", "-f", "-t", "0"});
y también con un
Runtime.getRuntime().exec("shutdown -h -t 0");
Pero no hace nada...
Uso Windows 8.1 y estoy programando con Eclipse Luna.
Me reitero en que el error no es del controlador, ya que los "cambiaTexto" los hace.
Saludos y gracias