java - 如何访问在 java swing 中运行时实例化的对象的事件监听器

标签 java swing variables subclass event-listener

我有一个定制的 JPanel itemSmallCard(String prodID, String ProductName, String Price, String Retailer),使用它我在另一个 JPanel 中创建了它的多个实例,并在 ActionPerformed 事件上使用不同的参数一个按钮如下:

JPanel iC = new itemSmallCard("123456789ab", "Inspiron 7567 Intel Core i5 DELL Laptop", "48957", "Cloudtail Pvt. Ltd.");
        mainContentPane.add(iC);
        mainContentPane.revalidate();
        mainContentPane.repaint();

但是,由于所有新的 JPanel 都是使用相同的变量 iC 使用相同的代码创建的,我不知道如何从中访问特定的 JPanel 变量,因此也无法访问其事件听众。 我怎样才能实现这一目标?

最佳答案

也许创建一个 ArrayList(如果您不需要访问不基于位置的特定列表)。

ArrayList<JPanel> panels = new ArrayList<JPanel>();

或者,如果您需要访问它们,您可以创建一个“HashMap”并将您的 ID 存储在其中。

WeakHashMap<String, JPanel> panels = new WeakHashMap<String, JPanel>();

panels.put("123456789ab", new itemSmallCard("123456789ab", "Inspiron 7567 Intel Core i5 DELL Laptop", "48957", "Cloudtail Pvt. Ltd.");// Adds a product with that info

panels.get("123456789ab"); // Returns the panel with that ID.

希望这有帮助。

关于java - 如何访问在 java swing 中运行时实例化的对象的事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56383205/

相关文章:

java - 无法在同一 Activity 中创建多个 YoutubePlayerFragment

java - 如何在java工具中使用拦截器?

java - 如何在 swagger.json 中传递 formData 进行 POST 请求?

java - swing 中内容 Pane 和布局之间的区别?

r - 在多个变量 R 代码上创建新的变量条件

java - 如何使用poi合并两个excel工作簿?

java - 如何使用扩展类的 JPanel 对象?

java - GridBagLayout 如何工作?

jquery - jquery ajax函数中的多个数据变量

loops - 使用 Postman 在 URL 中循环使用多个变量