JTextArea字体更改很慢

时间:2009-05-08 20:51:05

标签: java jtextarea

我对JTextArea控件有一个奇怪的问题: 当我调出我的JTextArea时,一切都很好,无论我输入什么,都会毫不拖延地显示出来。但是,只要我将FontSizeAction发送到我的EditorKit(在这种情况下为RTFEditorKit,但似乎并不重要),就会发生1到几秒的延迟。有趣的是,延迟只发生在您键入内容之后,即字体更改后无所事事然后键入,只是立即键入没有区别。延迟是一样的。我可以在FontSizeAction之后输入第一个字母后立即看到,分配会增加几个megs。

我在应用程序上使用了一个分析器,而我自己的应用程序中似乎没有任何问题。

****以下是一些代码:

private void updateFont(MainModelManager model)
{
    (new RTFEditorKit.FontSizeAction("font-size-" + model.getFontSize(),
                                     model.getFontSize())).actionPerformed(
        new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) );

    (new RTFEditorKit.FontFamilyAction("font-family-" + model.getFontFamily(), model.getFontFamily())).actionPerformed(
            new ActionEvent(this, ActionEvent.ACTION_PERFORMED, model.getFontFamily()) );
}

这是主模型容器声明的一部分:

public class MainModelManager extends Observable
{
    private DefaultStyledDocument doc;
    private int fontSize = 12;
    private String fontType = "Helvetica";
    private StyleContext sc; 
    private Caret editorCaret;
    private boolean editorFrameIsResizable;  
    //...
}

更新:

我认为我已经缩小到FontFamilyAction的问题因为,如果我评论它延迟消失,我仍然可以毫无问题地改变字体大小。也许这与加载字体有关?

0 个答案:

没有答案