В основном, что я пытаюсь сделать здесь, это события щелчка мыши, которые, как предполагается, отображаются в зависимости от того, какая кнопка нажата. Например, если нажать кнопку «один», появится соответствующая панель. Но событие панели и клика ничего не знает друг о друге. Я считаю, что это называется анонимным классом. У меня возникли проблемы с попыткой реализовать это. Что было бы хорошим способом реализовать это?Обработка событий GWT Click в другом методе
Это мой щелчок кнопки класс событий
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, но сталкиваюсь с ошибками такого переполнения стека. В другом методе, который я пытался, я не могу обновить панель, когда я добавляю. Я использую кнопку здесь вместо панели только для тестирования, пока не пойму логику.
Спасибо за помощь!
интересный. Я удивляюсь, почему я не могу просто вызвать метод в другом классе, который добавляет еще одну кнопку на панель в этом классе? Я смущен, почему он не обновляет – meepin
Спасибо, что я собираюсь попробовать! – meepin