比 Box 更高效的布局
我有一些非常旧的代码,它使用 Box
来列出一些信息。我这样创建它:
Box patterns = Box.createVerticalBox();
非常(非常)经常,添加新项目并删除旧项目,例如:
label = new JLabel("xyz");
patterns.add(label);
后来
patterns.remove(label);
每当添加某些内容或删除某些内容时,我都必须重新绘制它,所以我打电话:
patterns.revalidate();
patterns.repaint();
问题是,因为这种情况经常发生它让用户界面变得混乱。我认为我需要更好的实施才能提高效率。
我知道我可以在后台维护一个活动项目列表,然后间歇性地更新实际的 UI(批量更新),但是......
有人可以建议一种更有效的替代方法吗?
I've got some very old code which uses a Box
to list some information. I create it like so:
Box patterns = Box.createVerticalBox();
Very (very) often, new items are added and old items are removed eg:
label = new JLabel("xyz");
patterns.add(label);
and later
patterns.remove(label);
whenever something is added ore removed I have to have it repaint, so I call:
patterns.revalidate();
patterns.repaint();
Problem is, since this happens very often it chokes up the UI. I think I need a better implementation in order to make it more efficient.
I know I could maintain a list of the active items in the background and then intermittently update the actual UI (batch update) but...
Can someone suggest a more efficient alternative approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不直接使用
JList< /code>
并实现 单元格渲染器< /a>?
或者通过
JTable
获得更大的灵活性 并实现表格单元渲染器< /a> (返回改为组件
)?Why don't you just use a
JList
and implement a cell renderer?Or more flexibility with a
JTable
and implement a table cell renderer (returns aComponent
instead)?基于此示例,以下代码执行 16 个标签在 10 赫兹。
Based on this example, the following code loafs doing 16 labels at 10 Hz.