如何在java中获取字符串/字符的高度?

如何在java中获取字符串/字符的高度?,java,swt,Java,Swt,我想知道绳子的高度。我的意思是: 假设我有字符串:嗨,那么我想要高度(Hi)作为该字符串中所有字符的最大高度,因此它将是H的高度。我看到一些帖子说使用图形来测量它,但我没有打印它,但我只想要高度 如果我能得到字符的高度,那么我会写一个循环,看看哪个是最高的高度 所以这两种方法都可以: 获取字符串的高度(字符串中所有字母的最大高度)或 获取指定字母的高度 只需使用方法GC#textdextent()即可获得一个点,该点具有文本的高度和宽度: public static void main(Stri

我想知道绳子的高度。我的意思是:
假设我有字符串:嗨,那么我想要高度(Hi)作为该字符串中所有字符的最大高度,因此它将是H的高度。我看到一些帖子说使用图形来测量它,但我没有打印它,但我只想要高度
如果我能得到字符的高度,那么我会写一个循环,看看哪个是最高的高度
所以这两种方法都可以:
获取字符串的高度(字符串中所有字母的最大高度)或

获取指定字母的高度

只需使用方法
GC#textdextent()
即可获得一个
点,该点具有文本的高度和宽度:

public static void main(String[] args)
{
    final Display display = Display.getDefault();
    final Shell shell = new Shell(display);
    shell.setLayout(new GridLayout(1, false));

    GC gc = new GC(display);
    
    System.out.println(gc.textExtent("Hi").y);
    
    gc.dispose();
    
    shell.pack();
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}
Javadoc:

返回给定字符串的范围。执行选项卡展开和回车处理

字符串的范围是在特定字体中绘制时所覆盖的矩形区域的宽度和高度(在本例中为接收器中的当前字体)


只需使用方法
GC#textdextent()
即可获得一个
点,该点具有文本的高度和宽度:

public static void main(String[] args)
{
    final Display display = Display.getDefault();
    final Shell shell = new Shell(display);
    shell.setLayout(new GridLayout(1, false));

    GC gc = new GC(display);
    
    System.out.println(gc.textExtent("Hi").y);
    
    gc.dispose();
    
    shell.pack();
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}
Javadoc:

返回给定字符串的范围。执行选项卡展开和回车处理

字符串的范围是在特定字体中绘制时所覆盖的矩形区域的宽度和高度(在本例中为接收器中的当前字体)


您不也需要指定所有字符显示的字体吗?(如果你想要的东西是可行的,我其实不会感到非常惊讶。)@ling.s我看到了。我需要扩展JPanel吗?我的代码没有使用JPanel@DennisMeng我正在使用默认字体!所以我想知道eclipse是否可以使用默认字体返回高度?比如Courier?(而且,如果代码可以在具有不同默认值的地方运行,“默认值”也不会有真正的帮助。)您是否还需要指定所有字符显示的字体?(如果你想要的东西是可行的,我其实不会感到非常惊讶。)@ling.s我看到了。我需要扩展JPanel吗?我的代码没有使用JPanel@DennisMeng我正在使用默认字体!所以我想知道eclipse是否可以使用默认字体返回高度?比如Courier?(另外,如果代码可以在具有不同默认值的地方运行,“default”也没有什么帮助。)