Pues os muestro el código que lo haría todo...
Código
public void apagar() { try { if(radAnular.isEnabled()) { 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"); } } 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í...
Código
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