java - java - 如何在java swing中访问在运行时实例化的对象的事件侦听器
问题描述
我有一个定制的 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 变量,因此也无法访问其事件侦听器。我怎样才能做到这一点?
解决方案
您需要编写一个通用侦听器:
- 在侦听器代码中,您使用该
getSource()
方法来获取事件的来源。 - 一旦知道了源组件,就可以使用组件的
getParent()
方法。 - 现在您可以访问面板,并且可以访问面板的任何方法/变量。
推荐阅读
- angular - 避免在新订阅的 rxjs 主题(asObservable)中出现以前的错误
- javascript - 角度视图未呈现但路由 URL 更改
- firebase - 无法在Vue js的组件中添加firebase
- javascript - 如何设置最小重新加载时间
- python - Plotly:如何为 Plotly 3D Scatter 图形创建自定义悬停标签?
- c - 在复制 wc 命令的 C 程序中使用两个缓冲区
- swift - UICollectionViewCompositionalLayout 水平,使用估计和不水平拥抱时不计算内容的宽度
- c# - 使用 Visual Studio 2019 时的负 Array.Length
- javascript - Node JS - 在对服务器的调用之间保持会话?
- android - 每两天触发一次警报