繁体   English   中英

如何在匿名内部actionListener类和actionPerformed方法中访问局部变量?

[英]How to access local variables in anonymous inner actionListener class and actionPerformed method?

我正在为CS类开发项目,因此我无法发布任何代码,但是我会尽力描述我的设置。 该程序应该具有3个独立的JPanels,每个JPanels都有一个图像和旋转和重置图像的按钮。 提供了一个Driver类,用于设置JFrame,创建单个Project对象以传递给其他类(此Project类包含旋转和组合图像的方法),并具有main方法。

我所做的是创建一个类,该类扩展了JPanel以使用图像,文件名和旋转/重置按钮设置JPanel。 我有这个类的构造函数,它使用了面板的编号(以跟上在面板中写入图像的编号),要显示的图像文件以及在Driver类中创建的Project对象(以便能够访问用于处理图像的方法)。 我立即调用super(); 然后将文件名和图像设置为(JLabel),将按钮设置为(JButtons)。

这是我的问题所在。 我试图设置“旋转”按钮,所以创建了一个匿名的内部类动作侦听器和actionPerformed方法。 我计划要做的是使用Project对象引用对图像对象调用rotate方法,让它将BufferedImage返回到modifiedImage BufferedImage中。 然后删除带有原始图像的JLabel,将ModifyedImage添加为JLabel,重新验证并重新绘制。 但是,我不能在内部actionPerformed类中使用此引用或对Project对象的引用。

我如何获得在执行动作的内部类中对这些引用的访问? 还是我的设置完全糟糕? 请多多包涵-这是我第一次使用任何类型的GUI。

使您对Project对象final引用。 这将解决问题,并且不会造成任何伤害,因为您将不会再次分配它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM