小编典典

显示格式化为HTML的大型JLIST

java

我有一个Java小程序,其中必须显示大量的项目(字典条目)。用户需要能够选择列表中的各个项目,因此将其实现为JList。生成列表的速度非常快,直到我决定通过使用HTML格式化单个项目来使显示更具美感。现在,列表看起来很漂亮,但是每次用户访问字典时都需要10到15秒的时间来生成它(不格式化,它几乎立即发生)。我想我可以通过在用户首次进入应用程序时生成列表,并根据需要隐藏和取消隐藏列表来提高性能。但是,我想知道是否有更好的方法。也许是一种更有效的方式来生成列表。

这是变慢发生的代码部分(在C和D的显示之间):

DefaultListModel dictCodeModel =  new DefaultListModel();
System.out.println("C");
while (e.hasMoreElements()) {
    String currentEntry = "";
    DEntry dentry = (DEntry) e.nextElement();
    if (!filter)                 
        dictCodeModel.addElement(dentry.theToken); // tokens have embedded html tags

}
System.out.println("D");

如您所见,这非常简单。当“ theToken”格式化为HTML时,我得到了真正的性能提升。我有什么想法可以解决这个问题?

谢谢,


阅读 208

收藏
2020-11-30

共1个答案

小编典典

您使用哪种HTML格式?如果只是文本样式(字体,颜色),则可以使用JLabel,相应地设置其属性,然后将其设置ListCellRendererJList

2020-11-30