【问题标题】:How to get height of string / character in java?如何在java中获取字符串/字符的高度?
【发布时间】:2013-10-24 15:07:39
【问题描述】:

我想得到一个字符串的高度。这就是我的意思:
假设我有字符串 : Hi ,那么我希望高度(Hi)作为该字符串中所有字符中的最大高度,所以它将是 H 的高度。我看到很少有帖子说使用图形来测量它,但是我没有打印它,但我只想要高度!
如果我能得到字符的高度,那么我将编写一个循环来查看哪个是最高高度!
所以两者中的任何一个都可以:
获取字符串的高度(字符串中所有字母的最大高度)或
获取指定字母的高度!

【问题讨论】:

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

标签: java swt


【解决方案1】:

只要用GC#textExtent()的方法就可以得到一个Point和文字的高宽:

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:

返回给定字符串的范围。执行制表符扩展和回车处理。

字符串的范围是如果绘制以特定字体在这种情况下,接收器中的当前字体,它将覆盖的矩形区域的宽度和高度>)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2014-02-11
    相关资源
    最近更新 更多