比Box更有效的布局

pst*_*ton 3 java swing layout-manager

我有一些非常古老的代码,它使用a Box来列出一些信息.我创建它是这样的:

Box patterns = Box.createVerticalBox();
Run Code Online (Sandbox Code Playgroud)

非常(非常)经常添加新项目并删除旧项目,例如:

label = new JLabel("xyz");
patterns.add(label);
Run Code Online (Sandbox Code Playgroud)

然后

patterns.remove(label);
Run Code Online (Sandbox Code Playgroud)

每当添加某些东西时,我必须重新涂抹,所以我打电话给:

patterns.revalidate();
patterns.repaint();
Run Code Online (Sandbox Code Playgroud)

问题是,因为这种情况经常发生,所以它会扼杀用户界面.我认为我需要一个更好的实现,以使其更有效.

我知道我可以保持在后台活动项目的列表,然后间歇性地更新实际UI(批量更新),但...

有人可以提出更有效的替代方法吗?

Yan*_*hon 6

为什么不直接使用JList并实现单元格渲染器

或者更灵活地使用JTable并实现表格单元格渲染器(返回一个Component代替)?