JavaFX - первое подчеркивание в тексте узла не отображается - PullRequest
1 голос
/ 20 сентября 2019

Это действительно странная ошибка, но всякий раз, когда я пытаюсь поместить текст с подчеркиванием на любой узел JavaFX , кроме Метки (кнопки, флажки и т. Д.), Первое подчеркивание никогда не отображается.

Простой пример, иллюстрирующий мою точку зрения:

package application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = new BorderPane();
            Scene scene = new Scene(root, 400, 400);
            TilePane tp = new TilePane();
            root.setCenter(tp);

            for (int i = 0; i < 10; i++) {
                Button b = new Button("Underscores_Do_Not_Show_Right");
                tp.getChildren().add(b);
            }

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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

Выглядит так: The first underscore is missing for each button

Это похоже на ошибку JavaFX, но кто-нибудь знает об обходном пути?Для флажков я просто помещаю метку рядом с текстовым флажком.Однако для кнопок это не вариант.

1 Ответ

5 голосов
/ 20 сентября 2019

Поскольку у кнопок есть mnemonicParsingProperty, вы должны отключить это свойство, чтобы избежать подчеркивания, интерпретируемого как мнемоника.Вот так:

b.setMnemonicParsing(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...