当前位置: 首页 > 知识库问答 >
问题:

当字符串呈现为HTML时,如何获得字符串的大小?

傅新
2023-03-14

目前我正在开发一个新的外观和感觉,由于许多原因,我不得不从头开始,我现在最大的问题是在具有gettext()的组件中获取字符串的宽度和高度,以确定它应该在哪里绘制,我知道如何为普通文本获取它,但如果它呈现为html文本,该如何做??。

使用fontmetrics确实提供了纯文本所需的一切,但使用它来处理html时,它就像是纯文本一样,所以我尝试了view.getgraphics()并对视图对象图形的fontmetrics执行相同的操作,但仍然是相同的,而我想要的是绘制的文本的尺寸(差异很大,比如它是否包含
高度将不准确!或者html标记中的字体发生了变化,等等。).

    public Dimension getTextSize(JComponent c, Graphics g, String text) {
        //this works if you want to get the size as if it's plain text
        //and later in the drawing calculate the descent line distance to draw the text
        g.setFont(c.getFont());
        FontMetrics fontMetrics = g.getFontMetrics();
        Dimension plaintTextSize = new Dimension(fontMetrics.stringWidth(text),fontMetrics.getHeight());
        return plaintTextSize;
    }

我已经用上面的

View view = (View) JComponent.getClientProperty(BasicHTML.propertyKey);

并将view.getgraphics()传递给getTextSize方法,但仍然相同。我搜索了很多次,但没有找到任何相关结果,也没有找到要使用什么类的信息,而且我不能使用TextLayout,因为有些时候JComponent可能不是JTextComponent。请帮帮忙,谢谢你。

编辑

共有1个答案

卢权
2023-03-14

我已经20多年没有尝试这样做了,但是由于JLabel接受html,所以尝试使用html文本创建一个JLabel,然后获得标签的首选大小。

 类似资料:
  • 问题内容: 我使用setState更新html的一部分,但发现未呈现新的更新html。这是js fiddle 代码: HTML: js: 我省略了从服务器更新html的部分,但结果是相同的。如何让状态字符串呈现? 问题答案: 使用注入HTML作为一个字符串做出反应(但请注意,阵营将无法在它的虚拟DOM使用这个标记): http://jsfiddle.net/5Y8r4/11/ 用于执行此操作的AP

  • 在JS中,有没有一种方法可以在HTML标记中获得整个HTML(作为字符串)?

  • 如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?

  • rank ▲ ✰ vote url 43 465 86 790 url 获得一个字符串的子串 有什么方法获得一个字符串的字串,比如从一个字符串的第三个字符到最后. 可能是myString[2:end]? >>> x = "Hello World!" >>> x[2:] 'llo World!' >>> x[:2] 'He' >>> x[:-2] 'Hello Worl' >>> x[-2:] 'd

  • 我有两根绳子 在两种情况下,我应该删除

  • 问题内容: 这是我尝试过的方法以及出现问题的方法。 这有效: 这不是: description属性只是HTML内容的普通字符串。但是由于某种原因,它呈现为字符串,而不是HTML。 问题答案: 检查您尝试追加到节点的文本是否没有像这样转义: 代替这个: