Java 通过单击特定标签调用与arrayList中的对象相关的方法

Java 通过单击特定标签调用与arrayList中的对象相关的方法,java,arraylist,mouseevent,jlabel,joptionpane,Java,Arraylist,Mouseevent,Jlabel,Joptionpane,我试图在我正在进行的项目中实现一个特性,但我遇到了一些困难。该项目允许用户创建3个不同的对象,它们共享同一个超类。每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示。我希望能够单击特定的JLabel并打开一个带有toString()方法的消息对话框,该方法返回有关共同响应对象的信息 到目前为止,我已经有了一个(实施不善的)系统,允许用户单击任何图像图标,但它只显示最近创建的对象的信息。我知道为什么这段代码只显示它所显示的信息,但我不知道如何创建我需要的代码 如果有人

我试图在我正在进行的项目中实现一个特性,但我遇到了一些困难。该项目允许用户创建3个不同的对象,它们共享同一个超类。每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示。我希望能够单击特定的JLabel并打开一个带有toString()方法的消息对话框,该方法返回有关共同响应对象的信息

到目前为止,我已经有了一个(实施不善的)系统,允许用户单击任何图像图标,但它只显示最近创建的对象的信息。我知道为什么这段代码只显示它所显示的信息,但我不知道如何创建我需要的代码

如果有人能帮助我,我将非常感激。如果有什么解释不当或需要详细说明,请询问。我已经在下面附上了我的当前代码,谢谢

代码说明:“count”变量用于计算创建的对象数(我不能超过9个)。我知道当前代码只显示创建的“count-1”对象(这是最新的)。我只是不知道我需要做什么来找到与点击的标签相关的特定对象

label[count].addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) 
            {
                JOptionPane.showMessageDialog(null, myAppliances.get(count-1).toString()); 
            }});
每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示

这是一个很好的暗示。做以下事情怎么样

类MyObjectLabel扩展了JLabel,如下所示:

public MyObjectLabel extends JLabel
{
   private YourObjectThatisInList localCopyOfObject;
   public MyObjectLabel (YourObjectThatisInList object)
   {
     super(createIconForTheObject(object));
     this.localCopyOfObject=object
   }
    //add getter setter method for localCopyOfObject
}
2) 现在将侦听器添加到此类

3) 在这个新标签类触发事件时,调用localCopyOfObject的getter并显示存储在MyObjectLabel中的localCopyOfObject的toString

请注意,createIconForTheObject只是我展示的一个placeholeder方法。您可以使用自己的方法创建图标

谢谢

每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示

这是一个很好的暗示。做以下事情怎么样

类MyObjectLabel扩展了JLabel,如下所示:

public MyObjectLabel extends JLabel
{
   private YourObjectThatisInList localCopyOfObject;
   public MyObjectLabel (YourObjectThatisInList object)
   {
     super(createIconForTheObject(object));
     this.localCopyOfObject=object
   }
    //add getter setter method for localCopyOfObject
}
2) 现在将侦听器添加到此类

3) 在这个新标签类触发事件时,调用localCopyOfObject的getter并显示存储在MyObjectLabel中的localCopyOfObject的toString

请注意,createIconForTheObject只是我展示的一个placeholeder方法。您可以使用自己的方法创建图标

谢谢