javafx中的舞台造型

javafx中的舞台造型,java,javafx,popupwindow,scene,stage,Java,Javafx,Popupwindow,Scene,Stage,如何将StageStyle.utility和StageStyle.Undecoraded应用于同一阶段 我将其用于内部窗口/弹出窗口 或者如果我必须遵循任何其他解决方案,请执行stuggest 谢谢你的问题: 应用程序两种样式StageStyle.UTILITY和StageStyle.Undecoraded用于同一阶段 因为 你问我的建议 来解决你的问题 建议: 我建议使用,然后我们将进行一些修改以满足您的需要,我尝试创建此代码示例,用于在父窗口(所有者窗口)内创建弹出窗口: 包javafxpo

如何将StageStyle.utility和StageStyle.Undecoraded应用于同一阶段

我将其用于内部窗口/弹出窗口

或者如果我必须遵循任何其他解决方案,请执行stuggest


谢谢你的问题:

应用程序两种样式
StageStyle.UTILITY
StageStyle.Undecoraded
用于同一阶段

因为

你问我的建议 来解决你的问题

建议:

我建议使用,然后我们将进行一些修改以满足您的需要,我尝试创建此代码示例,用于在父窗口(所有者窗口)内创建弹出窗口: 包javafxpopup

import insidefx.undecorator.Undecorator;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author Menai Ala Eddine
 */
public class Undecorated extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Click");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                Stage popStage = new Stage();
                popStage.initStyle(StageStyle.TRANSPARENT);
                StackPane root = new StackPane();
                root.getChildren().add(new Label("I'm popup window"));
                applyModification(popStage, root);
                popStage.show();

            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);        
        primaryStage.setScene(new Scene(root,500,500));
        primaryStage.setTitle("Hello World!");
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

    private void applyModification(Stage primaryStage, StackPane root) {
        Undecorator undecorator = new Undecorator(primaryStage, root);
        undecorator.getStylesheets().add("/skin/undecorator.css");
        Scene scene = new Scene(undecorator, 300, 250);
        primaryStage.setScene(scene);
        scene.setFill(null);
        Node stageMenu = undecorator.lookup("#StageMenu");
        stageMenu.setVisible(false);
        Node maximize = undecorator.lookup(".decoration-button-maximize");
        maximize.setVisible(false);
        Node manimize = undecorator.lookup(".decoration-button-minimize");
        manimize.setVisible(false);
        Node restore = undecorator.lookup(".decoration-button-fullscreen");
        restore.setVisible(false);

    }

}
导入insidefx.undecorator.undecorator;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Node;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.Label;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
导入javafx.stage.StageStyle;
/**
*
*@作者Menai Ala Eddine
*/
公共类未修饰扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
按钮btn=新按钮();
btn.setText(“单击”);
btn.setOnAction(新的EventHandler

正如您同时看到的
StageStyle.undecoraded
StageStyle.UTILITY


PS:这是一个建议,您可以找到许多解决方案。

没有问题。请添加您的问题。请参阅我想创建一个内部窗口/弹出窗口。如何创建它?该窗口应该没有装饰,也没有标题#FireandFuel没有任何
阶段样式。没有标题的
(请参阅)。一个
未装饰的
阶段无论如何没有标题。@James\u D抱歉它是StageStyle.UTILITY我想你需要根据你的条件隐藏窗口的标题
未装饰的
实用程序
对于同一阶段,你有一个解决方案可以使你的阶段
未装饰
并在
右上方添加一个按钮。