这就是我尝试实现一个简单的产品列表(FlexTable
)的方法,其中包含一些添加,编辑和删除产品的按钮。
我的问题是ClickHandler
。在其他项目中,我看到他们总是使用嵌套类来定义点击处理程序(如下所示)。它有效,但我不明白为什么。当我尝试在上面的类中定义ClickHandler
时,总会出现(语法)错误。
我是初学者,在这里获得一些帮助会很棒。谢谢!
package com.example.itprojektv2.client;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.DOM;
public class ShowProducts extends Showcase {
/*
* Instantiate GUI Elements
*/
private FlexTable productTable = new FlexTable();
public Button addBt = new Button("Add");
public Button editBt = new Button("Edit");
public Button deleteBt = new Button("Delete");
/*
* Override abstract methods
*
*/
@Override
protected String getHeadlineText() {
return "Product - List";
}
@Override
protected void run() {
this.add(productTable);
productTable.setHTML(0, 0, "<h2>ID</h2>");
productTable.setHTML(0, 1, "<h2>Name</h2>");
productTable.setHTML(0, 2, "<h2>Price</h2>");
productTable.setHTML(0, 3, "<h2></h2>");
productTable.setWidget(1, 3, addBt);
productTable.setWidget(1, 4, editBt);
productTable.setWidget(1, 5, deleteBt);
editBt.addClickHandler(new EditProductClickHandler());
}
/**
* Nested-Class for the Click - Handling on "edit Product"
*/
private class EditProductClickHandler implements ClickHandler {
@Override
public void onClick(ClickEvent event) {
EditProduct edit = new EditProduct();
RootPanel.get("Content").clear();
RootPanel.get("Content").add(edit);
}
}
}