gpt4 book ai didi

JavaFX - 文件资源管理器无法在另一个全屏阶段打开

转载 作者:行者123 更新时间:2023-11-30 01:42:48 25 4
gpt4 key购买 nike

我实际上开始学习 JavaFX,但遇到了一个问题!

我有一个全屏舞台,我希望当我单击按钮时,在主舞台上打开一个新舞台!但实际上,我的第二阶段直接在我的桌面上生成。

我不知道我哪里失败了,也不知道我忘记了什么。如果有人可以帮助我或其他遇到同样问题的人,谢谢。

抱歉,我用法语评论:/

public void start(Stage stage) throws FileNotFoundException {         
//Chargement de l'image
Image image = new Image(new FileInputStream("res/spaceB.gif"));
ImageView imageView = new ImageView(image);

//Création du bouton
Button b = new Button();
// Rajout de l'image sur le boutton
b.setGraphic(new ImageView(new Image((new FileInputStream("res/play.png")))));
//Reduuit le boutton qu'a l'image
b.setFont(new Font(0));
//Taille boutton
b.setLayoutX(850);
b.setLayoutY(450);


/*---------------------------------------------------------------------------
* -------------------------------------------------------------------------
*/
b.setOnAction(e -> {
// FileChooserExample f = new FileChooserExample();
Stage s2 = new Stage();

Button choise = new Button("Choisir son fichier");
choise.setLayoutX(8);
choise.setLayoutY(45);

choise.setOnAction(e2 -> {

FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(new File("doc"));
File selectedFile = fileChooser.showOpenDialog(s2);
if(selectedFile != null) {
nom = selectedFile.getName();
}
});


Group g2 = new Group(choise);
Scene sc2 = new Scene(g2,600,500);
//Ajout nom et raccord de la scene au stage
s2.setTitle("File recorder ");
s2.setScene(sc2);
s2.show();
});
/*---------------------------------------------------------------------------
* -------------------------------------------------------------------------
*/

//Je possitionne l'image en 0/0
imageView.setX(0);
imageView.setY(0);

//Me permet d'avoir l'image en plein ecran (marche que pour l'IUT)
//Pas encore trouvé pour faire un fullscreen d'une imageview
imageView.setFitHeight(1950);
imageView.setFitWidth(1950);

//Garde le ratio de l'image et évite un gros zoom
imageView.setPreserveRatio(true);

//Creating a Group object
Group root = new Group(imageView, b);
Scene scene = new Scene(root, 600, 500);


//Ajout nom et raccord de la scene au stage
stage.setTitle("Bienvenue à SPACE-DUCK");
stage.setScene(scene);

//Met en plein écran le GIF et affiche
stage.setFullScreen(true);
stage.setResizable(true);
stage.setAlwaysOnTop(true);
stage.show();
}

最佳答案

你好,尼古拉斯,

您的情况不是错误。要使您的舞台出现在主舞台之上,您必须在这两个实例之间创建依赖关系:stage 必须是 s2所有者 。您可以通过输入命令来实现:

s2.initOwner(stage);

在命令s2.show()之前。我已经用随机图片测试了您的代码,它有效:

<小时/>

Interface principale avec le bouton PLAY au milieu主界面中间有一个小PLAY按钮

<小时/>

Appui sur le bouton PLAY按下播放按钮

<小时/>

J'espère que ça t'aidera:)

关于JavaFX - 文件资源管理器无法在另一个全屏阶段打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com