Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx 如何将不同文本大小的标签与bottom对齐?_Javafx - Fatal编程技术网

Javafx 如何将不同文本大小的标签与bottom对齐?

Javafx 如何将不同文本大小的标签与bottom对齐?,javafx,Javafx,我有两个不同的标签,一个大的显示一个变化的文本,一个小的显示一个%符号,必须更小 我将这两个文本放在网格窗格中,并将左侧文本与右下角对齐,将右侧文本与左下角对齐,因此两者之间没有间隙: 如何使两个文本对齐,使它们看起来像下图 事后看来,TextFlow本来是一个更好的解决方案,但我现在太投入我的项目了,无法改变这一点。这取决于你是如何构建场景的。如果使用的是FXML/Scene Builder,则应将GridPane行的valignment属性设置为基线 下面是一个完整的FXML,它可以复制您的

我有两个不同的标签,一个大的显示一个变化的文本,一个小的显示一个%符号,必须更小

我将这两个文本放在网格窗格中,并将左侧文本与右下角对齐,将右侧文本与左下角对齐,因此两者之间没有间隙:

如何使两个文本对齐,使它们看起来像下图


事后看来,TextFlow本来是一个更好的解决方案,但我现在太投入我的项目了,无法改变这一点。

这取决于你是如何构建场景的。如果使用的是FXML/Scene Builder,则应将GridPane行的valignment属性设置为基线

下面是一个完整的FXML,它可以复制您的屏幕截图,而无需设置样式:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.*?>
<GridPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1">
    <columnConstraints>
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"/>
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"/>
    </columnConstraints>
    <rowConstraints>
        <RowConstraints minHeight="-Infinity" valignment="BASELINE" vgrow="SOMETIMES"/>
    </rowConstraints>
    <children>
        <Label style="-fx-font-size: 5.0em;" text="44"/>
        <Label style="-fx-font-size: 3.0em;" text="\%" GridPane.columnIndex="1"/>
    </children>
</GridPane>
结果是:

对不起,颜色很奇怪;我的屏幕帽软件有问题。

请为该行添加一个,然后将设置为。
import javafx.application.Application;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Region;
import javafx.scene.layout.RowConstraints;
import javafx.stage.Stage;

public class TextAlignSample extends Application {

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

    @Override
    public void start(Stage primaryStage) {

        // Simple Interface
        GridPane root = new GridPane();

        RowConstraints constraints = new RowConstraints(
                Region.USE_PREF_SIZE,
                Region.USE_COMPUTED_SIZE,
                Region.USE_COMPUTED_SIZE);
        constraints.setValignment(VPos.BASELINE);

        root.getRowConstraints().add(constraints);

        // Add our Labels
        root.add(new Label("44") {{
            setStyle("-fx-font-size: 5.0em");
        }}, 0, 0);
        root.add(new Label("%") {{
            setStyle("-fx-font-size: 3.0em");
        }}, 1, 0);

        // Show the stage
        primaryStage.setScene(new Scene(root));
        primaryStage.setTitle("TextAlignSample Sample");
        primaryStage.show();

    }
}