客户ArrayList类修改Java中的特定元素

客户ArrayList类修改Java中的特定元素,java,arraylist,imageicon,Java,Arraylist,Imageicon,如何在自定义ArrayList中的特定点更改特定变量?我创建了一个ArrayList类,需要调整列表中的某个变量,但我似乎不知道如何实现它。我也在寻找答案,但似乎没有什么是针对我的问题的 我的超级类的代码是: public class Parcel extends JPanel { protected int idNum; protected double charge; protected char zone; protected ImageIcon i;

如何在自定义ArrayList中的特定点更改特定变量?我创建了一个ArrayList类,需要调整列表中的某个变量,但我似乎不知道如何实现它。我也在寻找答案,但似乎没有什么是针对我的问题的

我的超级类的代码是:

public class Parcel extends JPanel
{
    protected int idNum;
    protected double charge;
    protected char zone;
    protected ImageIcon i;
    protected static ArrayList<Parcel> parcelList;
    protected static ParcelList newParcel = new ParcelList();

public Parcel(int id, char z) 
{
    this.idNum = id;
    this.zone = z;
}
公共类包裹扩展JPanel
{
受保护的int-idNum;
保护双重充电;
保护炭区;
受保护的图像图标i;
受保护的静态阵列列表;
受保护的静态ParcelList newParcel=新ParcelList();
公共地块(整数id,字符z)
{
this.idNum=id;
这个区域=z;
}
我名单上的代码是

public class ParcelList extends Parcel
{

ParcelList()
{
    parcelList = new ArrayList<Parcel>();
}

public void addBox(int id, char z, int w, int l, int h)
{
    parcelList.add(new Box(id,z,w,l,h));
}
公共类地块列表扩展地块
{
包商()
{
parcelList=新的ArrayList();
}
公共无效地址框(整数id、字符z、整数w、整数l、整数h)
{
添加(新框(id、z、w、l、h));
}
我想做的是更改ImageIcon,例如,更改列表中第5个元素的ImageIcon,该元素包含许多具有不同图像的Box的不同实例。同时删除一个元素


用我当前设置代码的方法可以做到这一点吗?

不管代码中有什么冗余,一种方法是使用
newpacket.get(index)
,修改使用setter方法从中获得的
,然后使用
newpacket.set(index,newBox)

不确定你在问什么,你读了吗?
ParcelList extends Parcel
protected*static*Arraylist…
几乎肯定是错误的,但它对我不起作用。例如,我尝试使用此
newParcel.set(1,idNum=8)更改元素的idNum;
并且它返回了找不到符号方法(int,int),感谢这一帮助,所以我将使用get从
(索引)中获取数据
然后使用修改后的数据使用
newBox
重新定义它?实际上,如果您只修改列表中第n个对象的状态,则不需要使用set。记住,对象是引用,因此列表实际上是引用列表。当您获得
框并修改它时,您正在更改对象的状态列表中的引用引用。所以set是多余的,毫无意义的。现在,如果您正在根据从列表中获得的对象创建一个新的
对象,那么是的,您需要使用set来使新对象引用替换旧引用。那么我如何将其实现到代码中?就像我现在正在尝试这样做一样返回的是一个语法错误,表示…找不到符号方法(int,int)两个
int
是索引和新数据,这很难说,因为您似乎正在将
Box
对象放入
ArrayList
中。然而,假设
parcelList
Box
对象的
ArrayList
Box b=parcelList.get(index);b.setIdNum(8)
还假设
Box
是您自己的自定义类,您可以使用自己的setter方法来设置变量。