我需要知道如何从java中的 Component [] 数组中删除一个或多个项目。我没有看到任何方法快速完成。我必须使用java数组来实现那个?
例如: 我有一个 Jpanel ,有30个相同的按钮,我这样做:
Component[] comp = panel.getComponents();
我如何从 comp 中删除一个或所有项目?
如果我设置 comp = null ,还有更多内容;它会清除所有项目吗?
我做什么:
我尝试按名称对JPanel的项目进行排序,我使用Comparator将所有项目添加到comp中,然后在comp排序后再将它们添加回面板(我排序的所有项目都是具有不同名称的相同按钮)有最好的方法吗?
包含我使用的代码的图片:
JButtons也是app的一部分(让他们说他们是Tracks,他们有正确的点击功能和其他)
第2部分: 我的主要目标是分配内存由Array Components []使用(有时它足够大,如150 mbs),排序后我再也不需要这些组件了。我想要Array Components []由java garbage Collector从内存中分配。
答案 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);