我在确定显示一堆JTextPanes的最佳设计实践方面遇到了一些麻烦。假设我有1000个JTextPanes,每个JTextPane包含一个风格化的消息,我想将它们一个显示在另一个上面,就像聊天中收到的消息一样。对于涉及JTable并将窗格放在那里的东西会更好吗?或者只是将它们全部放在JPanel / JScrollPane中?我希望能够删除和添加JTextPanes,以及选择/聚焦特定的JTextPane。我使用JTable创建了一个alpha原型(甚至不会考虑原型)解决方案并创建自定义模型/渲染,它似乎对我想要实现的目标过于复杂。
想知道编写自定义JPanel是多么可以接受?另外,我对最多可容纳10,000张JPanels的性能方面感兴趣吗?
答案 0 :(得分:2)
为什么没有1个JTextPane和10000个不同的字符串,根据需要用给定的字符串填充JTextPane?
答案 1 :(得分:2)
显示10k文本窗格对我没有意义。你可能会耗尽资源。某些布局管理器甚至可以限制您可以添加的组件数量。我认为流程布局有512个限制,所以你需要嵌套面板来实现你想要的东西,这将增加复杂性。
实际上显示10K的任何东西对我来说都没有多大意义。用户如何滚动并找到他们想要的内容?
但是如果你确实需要这样的东西,你可以动态地添加/删除项目,那么我会调查一下JTable。它已经支持动态添加/删除。您甚至可以使用JTable的过滤功能来使您的应用程序更加可用。
我不确定你为什么说你需要自定义模型和渲染器。您可以在JTable中使用HTML作为样式消息。
答案 2 :(得分:0)
...程式化的消息,我想将它们一个显示在另一个上面
在这种情况下,更好的方法是使用JList和自定义单元格渲染器。