代码之家  ›  专栏  ›  技术社区  ›  Rohit Potter

如何在javafx中禁用最大化选项?

  •  0
  • Rohit Potter  · 技术社区  · 6 年前

    我正在创建一个javafx程序。我使用了.fxml代码来设计页面,但是有一个问题,每当我运行程序时,它在默认高度和宽度下都可以正常工作,但是当我最大化这个结果时,按钮和其他内容仍然保持在默认高度和宽度的原始位置。它们没有随高度和宽度而调整。因为它是一个MP3播放器,可以执行其他一些小功能,所以我希望它的大小不能扩展(它不能最大化)。这也能解决我的问题。

    FXML代码

    <?xml version="1.0" encoding="UTF-8"?>
    
    <?import javafx.geometry.Insets?>
    <?import javafx.scene.control.Button?>
    <?import javafx.scene.control.Label?>
    <?import javafx.scene.control.TextField?>
    <?import javafx.scene.layout.ColumnConstraints?>
    <?import javafx.scene.layout.GridPane?>
    <?import javafx.scene.layout.RowConstraints?>
    <?import javafx.scene.text.Font?>
    
    <GridPane alignment="top_left" hgap="10" prefHeight="475.0" prefWidth="800.0" style="-fx-background-color: white;" vgap="10" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
       <columnConstraints>
          <ColumnConstraints />
       </columnConstraints>
       <rowConstraints>
          <RowConstraints />
          <RowConstraints />
       </rowConstraints>
       <children>
          <Label prefHeight="49.0" prefWidth="800.0" text="Spotify Downloader Music Player">
             <font>
                <Font name="Comic Sans MS" size="24.0" />
             </font>
             <GridPane.margin>
                <Insets left="10.0" />
             </GridPane.margin></Label>
          <GridPane GridPane.rowIndex="1">
            <columnConstraints>
              <ColumnConstraints hgrow="SOMETIMES" maxWidth="392.0" minWidth="10.0" prefWidth="253.0" />
              <ColumnConstraints hgrow="SOMETIMES" maxWidth="551.0" minWidth="10.0" prefWidth="391.0" />
                <ColumnConstraints hgrow="SOMETIMES" maxWidth="551.0" minWidth="10.0" prefWidth="217.0" />
            </columnConstraints>
            <rowConstraints>
              <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
              <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
              <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            </rowConstraints>
             <children>
                <Button mnemonicParsing="false" prefHeight="30.0" prefWidth="275.0" text="Home">
                   <font>
                      <Font size="14.0" />
                   </font>
                </Button>
                <Button mnemonicParsing="false" prefHeight="45.0" prefWidth="257.0" text="Playlist" GridPane.rowIndex="1">
                   <font>
                      <Font size="14.0" />
                   </font>
                </Button>
                <Button mnemonicParsing="false" prefHeight="47.0" prefWidth="257.0" text="Settings" GridPane.rowIndex="2">
                   <font>
                      <Font size="14.0" />
                   </font>
                </Button>
                <Button mnemonicParsing="false" prefHeight="51.0" prefWidth="257.0" text="About" GridPane.rowIndex="3">
                   <font>
                      <Font size="14.0" />
                   </font>
                </Button>
                <Label prefHeight="33.0" prefWidth="253.0" text="Music name" GridPane.columnIndex="1">
                   <font>
                      <Font size="14.0" />
                   </font>
                   <GridPane.margin>
                      <Insets left="10.0" />
                   </GridPane.margin>
                </Label>
                <TextField prefHeight="34.0" prefWidth="543.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
                   <font>
                      <Font size="14.0" />
                   </font>
                   <GridPane.margin>
                      <Insets left="10.0" />
                   </GridPane.margin>
                </TextField>
                <Button mnemonicParsing="false" text="Search" GridPane.columnIndex="2" GridPane.rowIndex="1">
                   <GridPane.margin>
                      <Insets left="10.0" />
                   </GridPane.margin>
                </Button>
             </children>
          </GridPane>
       </children>
    </GridPane>
    

    如何在javafx中禁用最大化选项?

    请同时提出以下问题的答案: 如何通过大小扩展来改变内容的位置?

    提前谢谢。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Slaw    6 年前

    resizable property Stage false

    public class Main extends Application {
        @Override
        public void start(Stage primaryStage) {
            // Create Scene and add it to primaryStage
            primaryStage.setResizable(false);
            primaryStage.show();
        }
    }
    

        2
  •  1
  •   purring pigeon    6 年前

    stage.initStyle(StageStyle.UTILITY);
    

    stage.setMaxHeight(400.0);
    stage.setMaxWidth(600.0);