【问题标题】:JavaFX - First underscore on a node's text does not renderJavaFX - 节点文本上的第一个下划线不呈现
【发布时间】:2019-09-20 14:16:43
【问题描述】:

这是一个非常奇怪的错误,但每当我尝试在任何 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);
    }
}

看起来像这样:

这似乎是一个 JavaFX 错误,但有人知道解决方法吗?对于复选框,我只需在无文本复选框旁边放置一个标签。但是,对于 Button,这不是一个选项。

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    由于按钮有一个mnemonicParsingProperty,您应该禁用该属性以避免下划线被解释为助记符。像这样:

    b.setMnemonicParsing(false);
    

    【讨论】:

    • 在明文中:您使用“..._D...”可以通过键入 D 进行选择。有时助记符 D 带有下划线。
    • 哇,简直不敢相信修复这么简单。我会尽快接受答案!
    猜你喜欢
    • 2021-07-25
    • 2014-08-21
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多