如何从不同的类调用方法?

时间:2011-11-26 21:48:29

标签: java gwt

我有2个类,MainDialogOne(对话框ui的所有者类)。在Main中,我调用new DialogOne().center();这会打开对话框。在DialogOne中,我有一个按钮的点击处理程序。单击该按钮时,我将记录插入数据库。

Main main = new Main(); //because the db.open is in Main

@UiHandler("addBookButton")
void onAddBookButtonClick(ClickEvent event) {
   main.db.transaction(new TransactionCallback() {
      public void onTransactionStart(SQLTransaction tx) {
         tx.executeSql("INSERT INTO products (bookName) VALUES (?)", new Object[] { bookNameTextBox.getText().toString() }); 
      }
      public void onTransactionFailure(SQLError error) {
      }
      public void onTransactionSuccess() {
      }
   });
this.hide();
}

onTransactionSuccess()中,我需要调用updateList()中的Main,以便清除列表并从数据库中重新填充。我该怎么做呢?我试过main.updateList(),但似乎没有用。我可以在Main中执行等待onTransactionSuccess()被点击然后updateList()

的内容吗?

1 个答案:

答案 0 :(得分:0)

为了使其工作,JVM必须记住创建接口的上下文,以便不会删除对main的引用。 Java不支持,除非字段是最终的。看看this

中的“Anonymous inner class it not a closure”部分