您好,计划、日志等界面是ListPanel类创建的,这个类中有一个全局变量private Vector<Vector> notes;这个变量就是保存界面消息记录的。在ListPanel初始化的时候,会从数据库中将所有数据读取出来,保存在notes中,然后用initTable()方法将这些数据写入界面中。
当我们做添加操作时,会调用这样一些代码,我注释一下就是这样:
VindicateNoteDialog类,就是弹出来的添加的小面板:
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {
...
if (updateRow == null) {//没有需要更改的数据
values[0] = type;
dao.iNote(values);//调用dao持久层将新数据写入数据库中
}
...
}
ListPanel类,就是日志的大面版
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
String type = getName();
VindicateNoteDialog dialog = new VindicateNoteDialog(null, true);//初始化小面板
dialog.setType(type);//显示类型
dialog.setVisible(true);//可显示
notes = dao.sNoteByType(type); //调用dao持久层类,读取最新的数据
initTable(); //重新初始化界面中的数据
}
从这两段代码可以看出,我们新添加的数据通过小窗口写入数据库的,大窗口在小窗口执行完毕后,会重新读取数据库,做重新初始化。修改、删除操作的过程与添加一样。
现在回答你提的三个问题。
流程是否是:先把内容存在数据库,再从数据库读到主窗体的表里?
答:是的。
如果是的话想问下这里有没子窗口返回数值给父窗口的概念?
答:子窗口没有给父窗口返回数值。
另外想问这个过程中是否不用先存数据库直接显示在表里?
答:整个过程中,所有的数据都是先存入数据库,后读取出来的。这样做的原因是保证了前台数据与数据库是实时同步的。