基本上我在这里尝试做的是处理点击事件,该面板应该根据点击哪个按钮来显示。例如,如果我们点击按钮一,就会弹出相应的面板。但是面板和点击事件彼此不知道任何事情。我相信它被称为匿名类。我在尝试实现这一点时遇到了麻烦。什么是实现这一点的好方法?
这是我的按钮点击事件类
public class buttonHandle extends Composite {
private static buttonHandleUiBinder uiBinder = GWT
.create(buttonHandleUiBinder.class);
@UiField Button button;
@UiField Button button_1;
interface buttonHandleUiBinder extends UiBinder<Widget, buttonHandle> {
}
public buttonHandle() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("button")
void onButtonClick(ClickEvent event) {
}
@UiHandler("button_1")
void onButton_1Click(ClickEvent event) {
}
}
这是我每次单击按钮时都尝试添加新按钮的类
public class PanelHandle extends Composite {
private AbsolutePanel absolutePanel = new AbsolutePanel();
public PanelHandle() {
initWidget(absolutePanel);
absolutePanel.setSize("1027px", "636px");
Label lblHello = new Label("Hello");
absolutePanel.add(lblHello, 47, 80);
Label lblHello_1 = new Label("Hello");
absolutePanel.add(lblHello_1, 232, 249);
// TODO Auto-generated constructor stub
}
public void buttonOne()
{
this.absolutePanel.clear();
Button but1 = new Button("button one");
this.absolutePanel.add(but1);
}
}
我试过这样的东西,但它没有用新按钮更新面板
private PanelHandle pHandle = new PanelHandle();
private static buttonHandleUiBinder uiBinder = GWT
.create(buttonHandleUiBinder.class);
@UiField Button button;
@UiField Button button_1;
interface buttonHandleUiBinder extends UiBinder<Widget, buttonHandle> {
}
public buttonHandle() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("button")
void onButtonClick(ClickEvent event) {
Window.alert("hello buttone clicked");
pHandle.buttonOne();
}
@UiHandler("button_1")
void onButton_1Click(ClickEvent event) {
}
}
到目前为止,我尝试在 PanelHandle 类中调用该方法,但遇到堆栈溢出等错误。在我尝试的另一种方法中,添加时无法更新面板。在我理解逻辑之前,我在这里使用按钮而不是面板来进行测试。
谢谢你的帮助!