我正在使用 Swing 构建一个具有与 Twitter 类似功能的桌面应用程序。我有一个显示“推文”的“提要”页面。
我在 JPanel 中有“tweets”,我想通过将新的“tweets”放在 JPanel 的顶部并将旧的向下移动来动态显示新的“tweets”。我试图通过使用 jpanel.add(tweet, "cell 0 0, wrap")
对 MigLayout 执行此操作但是这没有按预期工作并且为了让它与布局一起显示我希望我必须调用 jpanel.revalidate()
。
这并不理想,因为每秒可能有很多推文,并且重新绘制面板可能会非常慢。无论如何我可以在面板顶部添加新的“tweets”而无需重新绘制?
最佳答案
虽然动态布局是可能的,如图所示here和 here ,我会使用单列 JTable
用TableModel
反射(reflect)了你想要的下推堆栈效果,也许有一个内部 Queue<Tweet>
. JTable
渲染效率高,组件在 JScrollPane
中运行良好.
关于java - 使用 Swing 动态重新排列布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927952/