Java 通过单击特定标签调用与arrayList中的对象相关的方法
我试图在我正在进行的项目中实现一个特性,但我遇到了一些困难。该项目允许用户创建3个不同的对象,它们共享同一个超类。每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示。我希望能够单击特定的JLabel并打开一个带有toString()方法的消息对话框,该方法返回有关共同响应对象的信息 到目前为止,我已经有了一个(实施不善的)系统,允许用户单击任何图像图标,但它只显示最近创建的对象的信息。我知道为什么这段代码只显示它所显示的信息,但我不知道如何创建我需要的代码 如果有人能帮助我,我将非常感激。如果有什么解释不当或需要详细说明,请询问。我已经在下面附上了我的当前代码,谢谢 代码说明:“count”变量用于计算创建的对象数(我不能超过9个)。我知道当前代码只显示创建的“count-1”对象(这是最新的)。我只是不知道我需要做什么来找到与点击的标签相关的特定对象Java 通过单击特定标签调用与arrayList中的对象相关的方法,java,arraylist,mouseevent,jlabel,joptionpane,Java,Arraylist,Mouseevent,Jlabel,Joptionpane,我试图在我正在进行的项目中实现一个特性,但我遇到了一些困难。该项目允许用户创建3个不同的对象,它们共享同一个超类。每个对象都是arrayList的一部分,由JLabel中的ImageIcon表示。我希望能够单击特定的JLabel并打开一个带有toString()方法的消息对话框,该方法返回有关共同响应对象的信息 到目前为止,我已经有了一个(实施不善的)系统,允许用户单击任何图像图标,但它只显示最近创建的对象的信息。我知道为什么这段代码只显示它所显示的信息,但我不知道如何创建我需要的代码 如果有人
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方法。您可以使用自己的方法创建图标
谢谢