En el trabajo estoy desarrollando una aplicación de escritorio que necesita generar una base de datos con Hibernate y los índices de los datos asociados para Hibernate Search, además de ciertas entradas mediante la API Preferences de Java. Como ejecutarlo mediante un script en una aplicación de escritorio da una apariencia un poco cutre
decidí crear un instalador mediante la clase QWizard de QtJambi. En una de las pantallas se mostraba la típica lista de avances y quería desactivar el botón Siguiente hasta que terminase el proceso. Al principio pensé que mediante el método setEnabled(false) del botón sería suficiente pero no surtía ningún efecto, la solución final es más o menos igual de sencilla: reimplementar el método QWizardPage.isComplete() fijando su retorno mediante una variable booleana. En resumen:
class InstallPage extends QWizardPage {
private boolean complete;
@Override
public boolean isComplete() {
return complete;
}
public void install() {
// ejecutar los pasos de la instalación
complete = true;
}
}
Para volver a activar el botón, en este caso sí funciona el método setEnabled(true).


