avez un problème avec JavaFX où whenI popup de une nouvelle étape, cette nouvelle fenêtre prendre le focus de toute application Windows avec mise au point actuelleJavaFX arrêter une nouvelle fenêtre voler accent
je le veux popup de l'avant, mais pas prendre mise au point, donc si l'utilisateur a été taper ailleurs ils peuvent continuer à taper etc.
In swing, vous pouvez contourner ce problème en:
dialog.setFocusable(false);
dialog.setVisible(true);
dialog.setFocusable(true);
Il semble y avoir aucune option similaire dans JavaFX. Exemple ci-dessous, lorsque vous cliquez sur le bouton, une nouvelle étape apparaîtra, prenant le focus (notez que je ne veux pas demander le focus, car dans l'application réelle, l'utilisateur pourrait écrire un email ou sur une page web lorsque le menu contextuel se produit, il a besoin de ne pas prendre l'accent de ces activités)
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class Main extends Application {
private Stage stage;
@Override public void start(Stage stage) {
this.stage = stage;
stage.setTitle("Main Stage");
stage.setWidth(500);
stage.setHeight(500);
Button btnPopupStage = new Button("Click");
btnPopupStage.setOnMouseClicked(event -> popupStage());
Scene scene = new Scene(btnPopupStage);
stage.setScene(scene);
stage.show();
}
private void popupStage(){
Stage subStage = new Stage();
subStage.setTitle("Sub Stage");
subStage.setWidth(250);
subStage.setHeight(250);
subStage.initOwner(stage);
subStage.show();
System.out.println("Does main stage have focus : "+stage.isFocused());
System.out.println("Does popup have focus : "+subStage.isFocused());
}
public static void main(String[] args) {
launch(args);
}
}
Toutes les idées pour une étape de ne pas prendre l'accent sur un stage.show()? Merci
Salut, Merci pour la réponse. la Modalité par défaut est AUCUN, donc je ne l'ai pas définie, et le paramétrer ne fait aucune différence. Je ne suis pas sûr d'avoir clarifié le problème. Je veux qu'une nouvelle scène apparaisse, mais je ne veux pas que l'on s'y concentre, je voudrais me concentrer pour rester là où elle était. Je n'ai pas défini la taille sur le bouton car c'était juste pour une démo rapide pour faire une autre scène popup sur commande. – user486415