the slowdown when using HTML in a list cell renderer with a huge list model is all of the time spent calculating the preferred size for each individual list item. That explains why the slowdown is only seen on the initial display (or addition/removal of items), not while scrolling. I think (it's been awhile since I looked at this) you can work around it by calling setFixedCellWidth() and setFixedCellHeight() in the JList (as doing both causes the JList to skip calculating preferred sizes of all individual items). I know you can work around it somehow, because I've done it before.