如何将一个jTable双击鼠标事件应用于同一个包中的不同jFrame

时间:2013-10-22 04:00:27

标签: java swing netbeans jtable

我在名为“StudentSearching Form”的jFrame中有一个jTable。我想要做的是如果用户不记得Student_Id,转到学生搜索表单并按名称搜索,然后你得到属于过滤名称的Student_Id并将其设置为名为“StudentRegistration表单”的框架中的jTextField .I到目前为止,这些东西都做得很好。但是我遇到的问题是根据我的代码,我只能将Student_Id设置为名为“StudentRegistration表单”的Frame。我有几个不同的框架,如“学生支付表格”,“学生支付表格”,“学生考试表格”,应通过搜索上述相同的“学生搜索表格”获得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);


}


}

在每个上面提到的Frame中有一个链接(jButton)转到“StudentSearching Form”,并在所需的Frame上获得Student_ID。只能在SMStudentRegistrationForm框架上获取Student_Id。 如果(StudentExams Form jButton被按下){ 我应该能够将Student_Id输入到“StudentExams表单”jTextField } 这将有助于解决我想的问题。但是不知道怎么做,使用java代码。 我正在使用netbeans IDE ..

1 个答案:

答案 0 :(得分:1)

定义自己的侦听器,例如仅使用一种方法ChangeSelectedStudentListener

void studentIdChanged(int newId);

让所有依赖表单实现侦听器。在更改时,他们应该更新其内部状态(更改文本字段值,从数据库中检索一些与id相关的数据等)。

在搜索表单中定义addChangeSelectedStudentListener()方法,该方法将所有已定义的侦听器存储在列表中。所有依赖表单都应该调用addChangeSelectedStudentListener(this)来让他们的侦听器注册。双击表格,遍历侦听器列表,并为每个项目调用studentIdChanged(clickedStudentId)

因此,所有表格都会收到有关学生变更的通知,并可以更新其状态。