首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX HBox对齐

JavaFX HBox对齐
EN

Stack Overflow用户
提问于 2015-04-18 03:30:18
回答 2查看 49.5K关注 0票数 22

我一直在使用JavaFX开发一个软件,我有一个愚蠢但令人担忧的问题。

在代码的某些部分,我有一个HBox,在它里面有三个项目:一个image,一个label和一个VBox

问题是我希望image靠左对齐,即紧靠window的左边距,而VBox靠右对齐,即紧靠window的右边界,我不知道该怎么做。

我试过使用VBox.setAlignment(Pos.RIGHT_CENTER),但它不起作用。

EN

回答 2

Stack Overflow用户

发布于 2015-06-14 15:21:33

当您想要将项目朝向布局的两个角放置时,这是最常见的对齐问题。

假设你想要:

代码语言:javascript
复制
HBox
  |
  ImageView (Left)
  Label (Center)
  VBox (Right)

我非常简单的解决方案是使用两个额外的Regions。介于ImageView和Label之间的一个。另一个在Label和VBox之间。

代码语言:javascript
复制
HBox
  |
  ImageView (Left)
  Region
  Label (Center)
  Region
  VBox (Right)

这些区域必须将HGrow设置为Priority.Always,,以便在调整HBox大小时,这两个元素将增长,而保持其他元素的位置不变。

FXML示例

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.*?>

<HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="94.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <ImageView fitHeight="150.0" fitWidth="140.0" pickOnBounds="true" preserveRatio="true">
         <image>
            <Image url="http://www.imaginaformacion.com/wp-content/uploads/2010/06/JavaFx.png" />
         </image>
      </ImageView>
      <Region prefHeight="200.0" prefWidth="200.0" HBox.hgrow="ALWAYS" />
      <Label prefHeight="17.0" prefWidth="205.0" text="Label On the Center" />
      <Region prefHeight="200.0" prefWidth="200.0" HBox.hgrow="ALWAYS" />
      <VBox alignment="CENTER_RIGHT" prefHeight="94.0" prefWidth="200.0">
         <children>
            <Label prefHeight="17.0" prefWidth="200.0" text="Label Inside the VBox" />
         </children>
      </VBox>
   </children>
</HBox>

请注意这两个区域的HBox.hgrow="ALWAYS"

输出

票数 50
EN

Stack Overflow用户

发布于 2015-06-14 04:04:29

我认为最好的选择是从HBox切换到BorderPane。它允许您将项目粘贴到窗口任意边缘。

另一个选择是GridPane。您可以选择列并将其“column”属性更改为“RIGHT”。

顺便说一句,我建议在享受JavaFX乐趣的同时使用JavaFX Scene Builder

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29707882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档