[英]How can I access arraylist from one jframe to another jframe
我在Java中相对较新。 在我的一个项目中,我有三个jframe。 它们是Menuframe,具有菜单列表; LoadDatafromExcelframe,用于从Excel文件中选择和读取数据; 和ShowDataFrame,用于显示我在LoadDatafromExcelframe中读取的数据。 实际上,这是一个大型项目的一部分。 不是整个项目! 在我的项目开始时,我正在读取Excel文件并将所有数据加载到arraylist中。 到此为止,我很好。 现在,我想从菜单列表中单击ShowDataFrame以显示在LoadDatafromExcelframe中读取的数据。 如果我可以访问arraylist,那么我可以继续前进。 我的问题是“如何从一个jframe(ShowDataFrame)到另一个框架(LoadDatafromExcelframe)访问arraylist?”我正在使用Netbeans IDE。
private void jMenuItemShowDataActionPerformed(java.awt.event.ActionEvent evt) {
showDataFrame.setVisible(true);
}
实际上,关键问题与JFrames或Swing无关,而仅仅是将信息从一个对象传递到另一个对象之一。 Swing参与的唯一方法是,如果您希望传递此信息以响应某种事件。
解决方案通常是以下一种方法:简单地为您的类提供适当的getter和setter方法,从“视图”,程序的GUI部分中分离出“模型”,程序的逻辑部分以及使用某种侦听器或观察者类型的接口(例如可以通过Swing事件侦听器获取的接口),以在另一类准备好推送或提取信息时通知一个类。
更一般的建议:
有关更具体的建议,您将需要提供更多详细信息并提供更多代码。
编辑2
根据您的帖子提供更多建议:
在我的一个项目中,我有三个jframe。 它们是Menuframe,具有菜单列表; LoadDatafromExcelframe,用于从Excel文件中选择和读取数据; 和ShowDataFrame,用于显示我在LoadDatafromExcelframe中读取的数据。
创建3个JPanels而不是3个JFrames似乎可以更好地实现。 然后,可以使用CardLayout在单个JFrame中根据需要显示JPanels,以帮助您交换它们。
实际上,这是一个大型项目的一部分。 不是整个项目! 在我的项目开始时,我正在读取Excel文件并将所有数据加载到arraylist中。
此ArrayList不应“读入JFrame”,而应属于非GUI类,确切地说,是您的“模型”类之一。 然后,在必要时,视图类和您的GUI代码可以向模型询问此数据。 在此站点上阅读Model-View-Control程序设计,以了解有关此有用模式的更多信息。
到此为止,我很好。 现在,我想从菜单列表中单击ShowDataFrame以显示在LoadDatafromExcelframe中读取的数据。
在这里,使用MVC结构,您的“视图”类之一,一个持有“菜单”的类应通知“控件”类您的代码需要“模型”类持有的ArrayList数据。 所有这些都可以通过使Control类保留对“模型”和“视图”的引用,并使“ view”类保留对控件的引用来实现,从而允许类之间进行通信。
您可以在对象的属性中以公共方式静态更改ArrayList,然后仅调用包含de ArrayList的te类的名称,然后调用ArrayList并在需要的任何地方使用它。
像这样:
JFrame1.ArrayList1.add(“一些东西”);
显然,在要调用ArrayList的JFrame2类中执行此操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.