web-dev-qa-db-fra.com

Comment supprimer les boutons d'étape JavaFX (réduire, agrandir, fermer)

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.

35
Anton

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);
57
Shardendu

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.

21
pmoule
primaryStage.setResizable(false);
9
jnr
primaryStage.initStyle(StageStyle.UTILITY);
7
hemisphire

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());
4
Wesos de Queso
stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);
1
Rostislav Viner

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();
    }
1
Anderson
stage.initStyle(StageStyle.DECORATED);
stage.setResizable(false);
0
Sid