0

と の 2 つの JFrame フォームがあるStaffListMenuとしLeaveDetailsMenuます。

StaffListMenuクラス内にstaffは、現在システム上にあるすべてのスタッフ メンバーの ArrayList であるという属性があります。LeaveDetailsMenuボタンのクリックでフォームを開き、staff属性をLeaveDetailsMenuクラスに渡したいと思います。私の知る限り、私は次のようにします:

private void btnLeaveDetailsActionPerformed(java.awt.event.ActionEvent evt) {
    LeaveDetailsMenu leaveDetailsForm = new LeaveDetailsMenu(staff);
    leaveDetailsForm.setVisible(true);
}

staffここで、いくつかのメソッドを呼び出して、 ArrayList内のいくつかの要素をleaveDetailsMenuクラスから再割り当てしたいと思います。これを行うと、変更はクラスのstaff属性に反映されますか?StaffListMenu

Java は参照渡しではなく (私がデスクトップ アプリケーションに使用した唯一の他の言語である C# のように)、代わりに のメモリ位置へのポインターを渡しますstaff。そのロジックに従って、StaffListMenuクラス内の属性を変更する必要がありますよね?

また、2 部構成の質問ですが、フォームが閉じられたStaffListMenuときにクラスで認識できる方法はありますか? LeaveDetailsMenuコールバックのような?

助けてくれてありがとう。

4

1 に答える 1

0

StaffListMenu クラスの属性を変更する必要がありますね。

はい。ArrayList オブジェクトを渡している (技術的には、メモリ内の ArrayList のアドレスの値を値で渡している) ため、呼び出し内のオブジェクトに加えられた変更は、その外側に表示されます。

LeaveDetailsMenu フォームが閉じられたときに、私の StaffListMenu クラスで認識できる方法はありますか?

はい。Window.addWindowListener(WindowListener l) (JFrame が継承) を見てください。リスナーを提供すると、ウィンドウを閉じるイベントの通知を受け取ることができます。

于 2013-01-11T19:57:29.557 に答える