【发布时间】:2014-08-31 23:12:27
【问题描述】:
现在我基本上有这个:
class ConvertButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
//Do stuff
ArrayList<String> blah = new ArrayList<String>();
blah.add(item);
}
}
我需要在另一个动作监听器中使用它:
class UploadButtonListener implements ActionListener {
public void actionPerformed(ActionEvent evt) {
ArrayList<String> attachmentFileListUpload = new ArrayList<String>();
getAttachmentFileList(attachmentFileListUpload);
JFrame uploadFrame = new UploadFrame(attachmentFileList);
//UploadFrame is a seperate class that extends JFrame
}
}
然后我就有了这个
public ArrayList<String> returnAttachmentFileList(ArrayList<String> attachmentFileList)
{
return attachmentFileList;
}
public ArrayList<String> getAttachmentFileList(ArrayList<String> attachmentFileListUpload)
{
attachmentFileListUpload = attachmentFileList.clone();
}
我知道我可以找到一种方法让它最终化并让它发挥作用,这会容易得多,但我觉得这很重要,我最终需要学习。我绝对需要将这些方法放在不同的类中吗?
编辑:我还在研究,是否需要在另一个类中声明 ArrayList 然后扩展 .add() 方法?
我正在做的是获取我在 ConvertButtonListener 中检索到的文件并将它们的 base64 内容和文件名保存在 2 个不同的数组中,对于 uploadButtonListener,我需要它能够查看是否有任何文件(这很多编写这样的代码并为其他 actionListener 调整它需要几个小时,所以我试图将它粘贴在一个数组中并返回它)所以我想检查数组是否为空,如果它不为空,我通过数组到一个新框架,并扫描整个文件(我把整个文件放在一个字符串中)以查找旧文件的内容,然后将其替换为将要上传的新文件的 base64 内容。
【问题讨论】:
-
为什么需要2个arraylists来存储值,可以使用MAP来存储key/value(base64值/文件名)吗?
-
也许您可以使用 ArrayList(或其他)作为源来制作自己的 ActionEvent。然后`AwtEventQueue.invokeLater 调用另一个actionPerformed。
-
地图的东西是一个非常非常好的主意!但是我仍然会遇到必须在另一个类中使用数组映射的问题。
-
我在第一篇文章中添加了更多示例代码,以阐明如何解决该问题。您可以轻松修改它以使用 Map 而不是 ArrayList
. -
谢谢!我试图看看我是否可以在不让它成为自己的课程的情况下做到这一点,但我想这仍然让我有很多事情要做。感谢您的帮助!还有一个问题,我可以在 Action Listener 中添加它而无需扩展 .add()/.put() 方法吗?
标签: java arraylist return return-value actionlistener