1

使用Font.UNDERLINED时是否可以设置下划线偏移?我正在使用以下内容使字体加下划线:

LabelField lf = new LabelField("Forgot your password?");
lf.setFont(Font.getDefault().derive(Font.BOLD | Font.UNDERLINED));

上面的代码产生

在此处输入图像描述

我希望下划线出现在字体的最底部位置。像这样:

在此处输入图像描述

我能想到的解决方案:

  1. 一种可能的解决方案是扩展LabelField和覆盖其paint()方法。形式上的东西:

    paint(Graphics g) {
        super.paint(g);
        g.drawLine(...);
    }
    

    只要LabelField's 的内容占一行,上面的代码就可以正常工作。一旦内容占据多行就会变得非常混乱。因此,我正在寻找更合适的解决方案。

  2. 另一种解决方案是编写一个类似于LabelField从头开始的新字段。

4

0 回答 0