在java中从Component []中删除Item

时间:2015-03-05 00:00:04

标签: java swing

我需要知道如何从java中的 Component [] 数组中删除一个或多个项目。我没有看到任何方法快速完成。我必须使用java数组来实现那个?

例如:   我有一个 Jpanel ,有30个相同的按钮,我这样做:

   Component[] comp = panel.getComponents();

我如何从 comp 中删除一个或所有项目?

如果我设置 comp = null ,还有更多内容;它会清除所有项目吗?

我做什么:

我尝试按名称对JPanel的项目进行排序,我使用Comparator将所有项目添加到comp中,然后在comp排序后再将它们添加回面板(我排序的所有项目都是具有不同名称的相同按钮)有最好的方法吗?

包含我使用的代码的图片:

A picture

JButtons也是app的一部分(让他们说他们是Tracks,他们有正确的点击功能和其他)

第2部分: 我的主要目标是分配内存由Array Components []使用(有时它足够大,如150 mbs),排序后我再也不需要这些组件了。我想要Array Components []由java garbage Collector从内存中分配。

1 个答案:

答案 0 :(得分:1)

忽略您可疑的设计,将getComponents()值放在List中,您可以动态删除元素,它会自动调整大小:

List<Component> compList = new ArrayList<Component>(Arrays.asList(panel.getComponents()));
// Let's assume compList has a size() value of 10
compList.remove(4);
compList.remove(7);