Comment supprimer les boutons d'étape JavaFX (réduire, agrandir, fermer)? Impossible de trouver des méthodes selon Stage
, devrais-je donc utiliser le style pour la scène? Il est nécessaire pour l'implémentation de fenêtres de dialogue telles que Error
, Warning
, Info
.
Si vous souhaitez désactiver uniquement le bouton d'agrandissement, utilisez:
stage.resizableProperty().setValue(Boolean.FALSE);
ou si vous voulez désactiver maximiser et minimiser sauf utilisation proche
stage.initStyle(StageStyle.UTILITY);
ou si vous souhaitez supprimer les trois, utilisez
stage.initStyle(StageStyle.UNDECORATED);
Vous devez juste définir le style d'une scène. Essayez cet exemple:
package undecorated;
import javafx.application.Application;
import javafx.stage.StageStyle;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class UndecoratedApp extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.initStyle(StageStyle.UNDECORATED);
Group root = new Group();
Scene scene = new Scene(root, 100, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Lors de l'apprentissage de JavaFX 2.0 ces exemples sont très utiles.
primaryStage.setResizable(false);
primaryStage.initStyle(StageStyle.UTILITY);
J'ai le même problème, cela ressemble à une fenêtre non décorée mais glissable/titrée (pour des raisons esthétiques) n'est pas possible dans javafx pour le moment. L'approche la plus proche est de consommer l'événement proche.
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
event.consume();
}
});
Si vous aimez les lambdas
stage.setOnCloseRequest(e->e.consume());
stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);
J'ai trouvé cette réponse ici -> http://javafxportal.blogspot.ie/2012/03/to-remove-javafx-stage-buttons-minimize.html Nous pouvons le faire:
enter code here
@Override
public void start(Stage primaryStage) {
primaryStage.initStyle(StageStyle.UNDECORATED);
Group root = new Group();
Scene scene = new Scene(root, 100, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
stage.initStyle(StageStyle.DECORATED);
stage.setResizable(false);