Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将类属性传递给另一个窗体,然后编辑其值_Java_Swing_Class_Reference - Fatal编程技术网

Java 将类属性传递给另一个窗体,然后编辑其值

Java 将类属性传递给另一个窗体,然后编辑其值,java,swing,class,reference,Java,Swing,Class,Reference,假设我有两个JFrame表单:StaffListMenu和LeaveDetailsMenu 在StaffListMenuclass I中有一个名为staff的属性,该属性是系统中当前所有工作人员的数组列表。我想点击按钮打开LeaveDetailsMenu表单,并将staff属性传递给LeaveDetailsMenu类。据我所知,我会这样做: private void btnLeaveDetailsActionPerformed(java.awt.event.ActionEvent evt) {

假设我有两个JFrame表单:
StaffListMenu
LeaveDetailsMenu

StaffListMenu
class I中有一个名为
staff
的属性,该属性是系统中当前所有工作人员的数组列表。我想点击按钮打开
LeaveDetailsMenu
表单,并将
staff
属性传递给
LeaveDetailsMenu
类。据我所知,我会这样做:

private void btnLeaveDetailsActionPerformed(java.awt.event.ActionEvent evt) {
    LeaveDetailsMenu leaveDetailsForm = new LeaveDetailsMenu(staff);
    leaveDetailsForm.setVisible(true);
}
现在,我想调用一些方法,并从
leaveDetailsMenu
类中重新分配
staff
ArrayList中的一些元素。如果我这样做,更改是否会反映在
StaffListMenu
类的
staff
属性中

我读到Java并没有通过引用传递(就像C#can do一样,这是我在桌面应用程序中使用的唯一一种语言),而是传递一个指向
staff
的内存位置的指针。按照这个逻辑,它应该对
statflistmenu
类中的属性进行更改,对吗

另外,这是一个由两部分组成的问题,当
LeaveDetailsMenu
窗体关闭时,我是否可以在我的
StaffListMenu
类中识别?要回电话吗

谢谢你的帮助

它应该更改StaffListMenu类中的属性, 对吧?

对。您传递的是ArrayList对象(从技术上讲,您传递的是内存中ArrayList地址的值),因此在调用内部对对象所做的任何更改都将在调用外部可见

在我的StaffListMenu课程中,当 LeaveDetails功能表是否已关闭


对。看看(JFrame继承了哪个)。您提供了一个侦听器,可以收到窗口关闭事件的通知。

您还可以使用模态JDialog而不是JFrame,它将阻止调用代码,直到对话框关闭为止