繁体   English   中英

改变尺寸的按钮

[英]Button for changing size

我正在处理此代码,即带有最小化按钮的JavaFX面板。 然后,我想按按钮缩小面板的大小,然后按按钮恢复原始大小。

public class MainApp extends Application
{

    private static BorderPane bp;

    @Override
    public void start(Stage stage) throws Exception
    {

        FlowPane flow = new FlowPane();
        flow.setPadding(new Insets(50, 5, 5, 5));
        flow.setVgap(15);
        flow.setHgap(15);
        flow.setAlignment(Pos.CENTER);

        Button button = new Button("Minimize");

        HBox thb = new HBox();
        thb.getChildren().add(button);
        thb.setAlignment(Pos.CENTER_RIGHT);

        boolean flag = true;


        button.setOnAction(new EventHandler<ActionEvent>()
        {

            @Override
            public void handle(ActionEvent t)
            {
                if (flag == true)
                {
                    flag = false;
                    bp.setPrefSize(600, 40);
                    bp.setMaxSize(600, 40);

                }
                else
                {
                    bp.setPrefSize(600, 500);
                    bp.setMaxSize(600, 500);
                }

            }
        });






        thb.setPadding(new Insets(13, 13, 13, 13));
        thb.setStyle("-fx-background-color: gray");

        DropShadow ds = new DropShadow();
        ds.setOffsetY(3.0);
        ds.setOffsetX(3.0);
        ds.setColor(Color.GRAY);

        bp = new BorderPane();
        bp.setEffect(ds);
        bp.setPrefSize(600, 500);
        bp.setMaxSize(600, 500);

        bp.setStyle("-fx-background-color:  white;");
        bp.setTop(thb);
        flow.getChildren().add(bp);
        Scene scene = new Scene(flow, 1200, 800);
        scene.getStylesheets().add("/styles/Styles.css");

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }

}

由于某种原因,我使用了布尔标志位,代码逻辑不正确。 您能帮我解决这个问题吗?

在其他部分使用flag值true

            if (flag == true)
            {
                flag = false;
                bp.setPrefSize(600, 40);
                bp.setMaxSize(600, 40);

            }
            else
            {
                flag = true;
                bp.setPrefSize(600, 500);
                bp.setMaxSize(600, 500);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM