我有一些关于从 arrayList 中删除对象的问题,如下所示,我创建了一个 JComponent,将其添加到 arrayList,然后将其添加到 JPanel,然后我将其从 Arraylist 中删除,但它仍然卡在面板?为什么该对象仍被添加到 Jpanel ?由“添加”方法引用?我应该 jp.remove(obj) 完全删除吗?如果没有,我如何完全删除它?<-主要问题。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.ArrayList;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Frame extends JFrame{
public Frame(){
Jpanel jp = new Jpanel();
getContentPane().add(jp);
setPreferredSize(new Dimension(200,200));
setVisible(true);
pack();
}
public class Jpanel extends JPanel{
public Jpanel(){
ArrayList<Obj> ArrList = new ArrayList<Obj>();
setLayout(null);
Obj obj = new Obj();
ArrList.add(obj);
add(obj);
ArrList.remove(0);
System.out.println(ArrList);
revalidate();
repaint();
}
}
public class Obj extends JComponent{
public Obj(){
setBounds(0,0, 100 , 100);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.green);
g.fillRect(50, 50, 50, 50);
}
}
public static void main(String[] args) {
Frame f = new Frame();
}
}