为了账号安全,请及时绑定邮箱和手机立即绑定

日食中的设置全屏(布尔值),用于在场景构建器中设计的 UI

日食中的设置全屏(布尔值),用于在场景构建器中设计的 UI

qq_遁去的一_1 2022-09-14 10:50:34
我正在开发一个小型项目,以创建一个 beatbox 应用程序,其中我使用 JavaFX 作为设计工具的 UI 和场景构建器。当我将组件放置在那里时,我可以看到它不是全屏的,而是当我将其与Eclipse IDE链接时。我将舞台设置为设置全屏模式,但我将组件放置在最左侧,但我想自行对齐。primaryStage.setMaximized(true); primaryStage.setMaximized(true);它必须自动对齐,但不像是极左的。<?xml version="1.0" encoding="UTF-8"?><?import com.jfoenix.controls.JFXButton?><?import com.jfoenix.controls.JFXProgressBar?><?import javafx.scene.Cursor?><?import javafx.scene.control.Label?><?import javafx.scene.image.Image?><?import javafx.scene.image.ImageView?><?import javafx.scene.layout.AnchorPane?><?import javafx.scene.layout.VBox?><?import javafx.scene.text.Font?> <VBox prefHeight="400.0" prefWidth="640.0"   xmlns="http://javafx.com/javafx/11.0.1"   xmlns:fx="http://javafx.com/fxml/1" fx:controller="box.firstcontroller"> <children> <AnchorPane maxHeight="-1.0" maxWidth="-1.0" prefHeight="-1.0"  prefWidth="-1.0" style="-fx-background-color: #78909C;"  VBox.vgrow="ALWAYS">  <children>        <JFXProgressBar layoutX="203.0" layoutY="333.0" />        <ImageView fitHeight="186.0" fitWidth="164.0" layoutX="53.0"   layoutY="94.0" pickOnBounds="true" preserveRatio="true">           <cursor>              <Cursor fx:constant="S_RESIZE" />           </cursor>           <image>              <Image url="@../login.png" />           </image>        </ImageView>        <ImageView fitHeight="164.0" fitWidth="151.0" layoutX="410.0"   layoutY="101.0" pickOnBounds="true" preserveRatio="true">           <image>              <Image url="@../signup.png" />           </image>        </ImageView>        <Label layoutX="251.0" layoutY="36.0" text="BeatBox">           <font>              <Font name="Tempus Sans ITC" size="41.0" />           </font>        </Label>        <JFXButton fx:id="signup" buttonType="RAISED" layoutX="68.0"      layoutY="314.0" onAction="#signupform" prefHeight="44.0"      prefWidth="115.0" ripplerFill="#752f2f" style="-fx-background-color: 
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

你实际上有几个问题正在发生。首先,您的根有一个 as 的子元素,它又包含各个节点。VBoxAnchorPane


这会导致您被迫手动设置这些节点的 X/Y 坐标。这设计非常糟糕。


相反,您应该使用 JavaFX 提供的各种布局窗格来处理节点的布局。


下面是一个非常基本的示例,它类似于您的布局,并且它是完全可扩展的:


<?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.ProgressBar?>

<?import javafx.scene.layout.HBox?>

<?import javafx.scene.layout.VBox?>

<?import javafx.scene.text.Font?>

<VBox alignment="TOP_CENTER" spacing="10.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1">

    <padding>

        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>

    </padding>

    <children>

        <Label text="BeatBox">

            <font>

                <Font name="Tempus Sans ITC" size="48.0"/>

            </font>

        </Label>

        <HBox alignment="CENTER" spacing="10.0" VBox.vgrow="ALWAYS">

            <children>

                <Button mnemonicParsing="false" text="Sign Up"/>

                <ProgressBar prefWidth="200.0" progress="0.0"/>

                <Button mnemonicParsing="false" text="Sign In"/>

            </children>

        </HBox>

    </children>

</VBox>

请注意,我使用标题下方的 来水平布局按钮。无需手动设置坐标或尺寸;让爪哇FX为您完成工作!HBox


The Result:

//img1.sycdn.imooc.com//63217fab0001e20d07450502.jpg

Scene Builder Heirarchy:

screenshot 2


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号