Отображение 10k текстовых панелей не имеет смысла для меня.Вы, вероятно, не хватает ресурсов.Некоторые менеджеры макетов даже имеют ограничение на количество компонентов, которые вы можете добавить.Я думаю, что макет потока имеет ограничение 512, поэтому вам нужно будет вкладывать панели, чтобы достичь того, что вы хотите, что увеличит сложность.
На самом деле отображение 10K чего-либо также не имеет для меня большого смысла.Как пользователь собирается прокручивать и находить то, что он ищет?
Но если вам нужно что-то подобное, что позволяет вам динамически добавлять / удалять элементы, я бы посмотрел на JTable.Он уже поддерживает динамическое добавление / удаление.Также вы можете даже использовать функции фильтрации JTable, чтобы сделать ваше приложение более удобным для использования.
Я не уверен, почему вы говорите, что вам нужны пользовательские модели и средства визуализации.Вы можете использовать HTML в JTable для ваших стилизованных сообщений.