首页 > 解决方案 > 如何用右对齐修复颤抖的文本?

问题描述

我在 JavaFX8 上使用具有右对齐的标签来一一输入数字。问题是文本在颤抖。

gif 示例

在 Ubuntu 18.04、JRE 1.8.0_211 上运行的应用程序。字体使用“Roboto Mono”,但任何字体都有问题。我尝试使用 TextField,但情况是一样的。注意到左对齐没有问题。

public class AppExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label = new Label();
        label.setStyle("-fx-background-color: #ccffcc; -fx-font-weight:bold; -fx-font-size: 24pt");
        label.setAlignment(Pos.CENTER_RIGHT);
        label.setMaxWidth(Double.MAX_VALUE);
        VBox vBox = new VBox(label);
        vBox.setFillWidth(true);
        vBox.setAlignment(Pos.CENTER);
        vBox.setStyle("-fx-background-color: #000");
        primaryStage.setScene(new Scene(vBox, 400, 100));
        primaryStage.getScene().setOnKeyPressed(event -> {
            if (event.getCode().equals(KeyCode.BACK_SPACE)) {
                int length = label.getText().isEmpty() ? 0 : label.getText().length()-1;
                label.setText(label.getText().substring(0, length));
            } else label.setText(label.getText() + event.getText());
        });
        primaryStage.show();
    }
}

我希望输入文本时不要颤抖,有什么可能的解决方案?

标签: javafx

解决方案


推荐阅读