1

我在确定显示一堆 JTextPanes 的最佳设计实践时遇到了一些麻烦。假设我有 1000 个 JTextPane,每个 JTextPane 都包含一个风格化的消息,我想将它们一个一个显示在另一个之上,就像在聊天中收到的消息一样。涉及 JTable 并将窗格放在里面会更好吗?还是简单地将它们全部放在 JPanel/JScrollPane 中?我希望能够删除和添加 JTextPane,以及选择/聚焦特定的 JTextPane。我已经使用 JTable 和创建自定义模型/渲染创建了一个 alpha 原型(甚至不考虑原型)解决方案,但对于我想要实现的目标来说,它似乎过于复杂。

想知道编写自定义 JPanel 的可接受程度如何?另外我对最多容纳 10,000 个 JPanel 的性能方面感兴趣吗?

4

3 回答 3

2

为什么没有 1 个 JTextPane 和 10000 个不同的字符串,根据需要用给定的字符串填充 JTextPane?

于 2011-02-24T23:15:34.777 回答
2

显示 10k 文本窗格对我来说毫无意义。您可能会耗尽资源。一些布局管理器甚至对可以添加的组件数量有限制。我认为流布局有 512 个限制,因此您需要嵌套面板来实现您想要的,这会增加复杂性。

实际上显示 10K 的任何东西对我来说也没有多大意义。用户如何滚动并找到他们正在寻找的东西?

但是,如果您确实需要这样的东西来允许您动态地添加/删除项目,那么我会研究 JTable。它已经支持动态添加/删除。您甚至可以使用 JTable 的过滤功能使您的应用程序更可用。

我不确定你为什么说你需要自定义模型和渲染器。您可以在 JTable 中为您的样式化消息使用 HTML。

于 2011-02-24T23:26:15.403 回答
0

...程式化的消息,我想将它们一个一个显示在另一个之上

在这种情况下,更好的方法是将 JList 与自定义单元格渲染器一起使用。

于 2011-02-24T23:27:17.087 回答