JavaFX更改按钮文本取决于窗口大小

问题描述 投票:0回答:1

我正在使用用于简单Mainmenu JavaFX应用程序的场景构建器。基本窗口分辨率为800 * 500。将窗口大小调整为宽度200后,如何获取按钮上的文本以更改为图像(或其他文本)?

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" styleClass="bodybg" stylesheets="@../mainmenu.css" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <GridPane prefHeight="500.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        </columnConstraints>
        <rowConstraints>
            <RowConstraints maxHeight="306.0" minHeight="10.0" prefHeight="128.0" vgrow="SOMETIMES" />
            <RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="90.0" vgrow="SOMETIMES" />
          <RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="90.0" vgrow="SOMETIMES" />
          <RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="90.0" vgrow="SOMETIMES" />
          <RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="120.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <Button fx:id="btnFirst" contentDisplay="CENTER" mnemonicParsing="false" prefHeight="75.0" prefWidth="200.0" styleClass="firstButton" stylesheets="@../mainmenu.css" text="Hra dvou hráčů" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
               <GridPane.margin>
                  <Insets />
               </GridPane.margin>
               <font>
                  <Font size="18.0" />
               </font></Button>
            <Button fx:id="btnSecond" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" prefHeight="75.0" prefWidth="200.0" text="Hra proti počítači" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="CENTER">
               <GridPane.margin>
                  <Insets />
               </GridPane.margin>
               <font>
                  <Font size="18.0" />
               </font>
            </Button>
            <Button fx:id="btnThird" mnemonicParsing="false" prefHeight="75.0" prefWidth="200.0" text="Hra po internetu" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER">
               <font>
                  <Font size="18.0" />
               </font></Button>
            <Button fx:id="btnFourth" mnemonicParsing="false" onAction="#btnEnd" prefHeight="75.0" prefWidth="200.0" styleClass="endButton" stylesheets="@../mainmenu.css" text="Konec" GridPane.halignment="CENTER" GridPane.rowIndex="4" GridPane.valignment="CENTER">
               <GridPane.margin>
                  <Insets top="-30.0" />
               </GridPane.margin>
               <font>
                  <Font size="18.0" />
               </font>
            </Button>
         </children>
      </GridPane>
   </children>
</AnchorPane>

如上所述,我使用AnchorPane,GridPane和Button。

java javafx scenebuilder
1个回答
0
投票

您可以使用窗口调整大小事件来更改按钮文本相对于屏幕宽度的字体大小。

fontSize = ((Width of screen)/10)) - 10;

只是一个想法。

© www.soinside.com 2019 - 2024. All rights reserved.