arrayList からのオブジェクトの削除に関していくつか質問があります。以下に示すように、JComponent を作成し、それを arrayList に追加し、JPanel に追加します。その後、Arraylist から削除しますが、まだJPパネル? オブジェクトがまだ JPanel に追加されているのはなぜですか? 「add」メソッドによって参照されますか? 完全に削除するには、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();
}
}