0

「StudentSearching Form」という名前のjFrameにjTableがあります。私がやりたかったのは、ユーザーが Student_Id を覚えていない場合、 Student Searching form に移動して name で検索し、フィルタリングされた名前に属する Student_Id を取得し、それを「StudentRegistration form」というフレームの jTextField に設定することです.Iこれまでのところ、これらのことはかなりうまくいっています。しかし、私が乗り越えた問題は、コードによると、Student_Id を「StudentRegistration フォーム」というフレームにしか設定できないことです。「StudentAttendance Form」、「Student Payment Form」、「StudentExams Form」など、上記と同じ「StudentSearching Form」を検索して Student_Id を取得するフレームがいくつかあります。

だからこれで私を助けてください.....ありがとう。

これが私のコードです:

private void jTable1MousePressed(java.awt.event.MouseEvent evt) {                                     
int rw =jTable1.getSelectedRow();
String k = jTable1.getValueAt(rw, 0).toString();

if(evt.getClickCount()==2){

SMStudentRegistrationForm sms= new SMStudentRegistrationForm();


this.dispose();
sms.setVisible(true);
sms.jTextField1.setText(k);


}


}

上記のすべてのフレームに「StudentSearching Form」に移動し、必要なフレームで Student_ID を取得するためのリンク (jButton) があります。SMStudentRegistrationForm Frame でのみ Student_Id を取得できます。If(StudentExams Form jButton press){ Student_Id を "StudentExams Form" jTextField に入力できるはずです } これは、私が推測する問題を解決するのに役立ちます。しかし、Javaコードを使用して、それを行う方法がわかりません。私はnetbeans IDEを使用しています..

4

1 に答える 1

1

ChangeSelectedStudentListenerたとえば、1 つのメソッドだけで独自のリスナーを定義する

void studentIdChanged(int newId);

すべての依存フォームにリスナーを実装させます。変更時には、内部状態を更新する必要があります (テキスト フィールド値の変更、DB からの ID 依存データの取得など)。

検索フォームaddChangeSelectedStudentListener()で、すべてのデッド リスナーをリストに格納するメソッドを定義します。すべての従属フォームは addChangeSelectedStudentListener(this) を呼び出して、リスナーを登録できるようにする必要があります。テーブルをダブルクリックすると、リスナーリストとアイテム呼び出しごとに反復処理されますstudentIdChanged(clickedStudentId)

したがって、すべてのフォームに生徒の変更が通知され、状態が更新される可能性があります。

于 2013-10-22T05:39:13.673 に答える