当前位置: 首页 > 面试题库 >

如何测量/计算文档需要呈现的大小?

索瀚海
2023-03-14
问题内容

我有一个javax.swing.text.Document,我想计算文档需要呈现的边界框的大小。

那可能吗?

纯文本(height = line count * line heightwidth = max width over each line)几乎是微不足道的,但是我该如何使用RTF,HTML或任何其他文档来实现呢?


问题答案:

该代码可能会给您一些想法:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

public class TextPanePerfectSize extends JFrame
{
    JTextField textField;
    JTextPane textPane;

    public TextPanePerfectSize()
    {
        textField = new JTextField(20);
        textField.setText("add text");
        getContentPane().add(textField, BorderLayout.NORTH );
        textField.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    Document doc = textPane.getDocument();
                    doc.insertString(doc.getLength(), " " + textField.getText(), null);
                    textField.setText("");
                    Dimension d = textPane.getPreferredSize();
                    Rectangle r = textPane.modelToView( textPane.getDocument().getLength() );
                    d.height = r.y + r.height;
                    textPane.setPreferredSize( d );
                    getContentPane().validate();
//                  pack();
                }
                catch(Exception e2) {}
            }
        });

        JLabel label = new JLabel("Hit Enter to Add Text to Text Pane");
        getContentPane().add(label);

        JPanel south = new JPanel();
        textPane = new JTextPane();
        textPane.setText("Some text");
        textPane.setEditable( false );
//      textPane.setPreferredSize( new Dimension(120, 23) );

        south.add( textPane );
//      getContentPane().add(south, BorderLayout.SOUTH);
        getContentPane().add(textPane, BorderLayout.SOUTH);
    }

    public static void main(String[] args)
    {
        JFrame frame = new TextPanePerfectSize();
        frame.setSize(200, 200);
        frame.setLocationRelativeTo( null );
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}


 类似资料:
  • 在我的SVM中,我使用tf-idf对文档进行特征提取。这些tf-idf是根据全部培训文件计算的。 现在,当我得到一个我想要分类的测试文档时,我如何为它生成向量? 我在计算tf-idf之前使用了词干分析。我也可以在测试文档上执行。我count_of_words火车文件。 为了计算测试文档的tf idf,我应该增加训练文档中的单词计数,还是直接使用它?

  • 如果一个集合中有大量的文档,我是否可以在不加载整个集合的情况下获得文档的计数。

  • 我知道在一堂课上 我可以在初始值设定项列表中初始化,如下所示: 但是,如果计算所需的数据来自字符串并且可能涉及计算,那么从第二个构造函数初始化的正确方法是什么?

  • 问题内容: 我有这样的台词,我想知道我实际上有几行… 有没有一种方法可以使用linux命令对它们进行计数? 问题答案: 用途: 这将输出行数: 或者,要从结果中省略,请使用: 您还可以通过管道将数据发送到:

  • 我创建了一个登陆页面,当用户滚动这个站点时,我使用scrollTrigger(gsap)来显示元素.但我看到我的网站有时崩溃,工作非常慢。此外,当用户滚动到该节和布局时,节呈现的所有时间之一将崩溃。我认识到这个问题的想法很简单。在我的包装中,我有一段代码,如下所示: 大概是这样的 请看我将console.log使用到return()中。此控制台在访问我的网站期间一直显示。所有的时间,如果用户滚动网

  • 我有一个word文件,我想数一下里面有多少页。 已使用Docx4Java创建该文件。 以前有人这么做过吗? 谢谢!