Возникла проблема - я хочу удалить кнопку в GWT с панели после нажатия на нее.GWT Удалить кнопку после нажатия
Что-то вроде этого:
VerticalPanel vp3 = new VerticalPanel();
vp3.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
final HorizontalPanel hp1 = new HorizontalPanel();
hp1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
final HTML fireCondText = new HTML("Fire conditions");
fireCondText.setStyleName("h1");
final HTML obscurity = new HTML("Obscurity:");
obscurity.setStyleName("h3");
final HTML statusObscurity = new HTML("NO");
statusObscurity.setStyleName("no");
if (statusObscurity.getHTML() == "YES") statusObscurity.setStyleName("yes");
Button butObscurity = new Button(
"Edit", new ClickHandler() {
public void onClick(ClickEvent event) {
final Button butYes = new Button(
"YES", new ClickHandler() {
public void onClick(ClickEvent event) {
statusObscurity.setHTML("YES");
hp1.remove(butYes);
}
});
final Button butNo = new Button(
"YES", new ClickHandler() {
public void onClick(ClickEvent event) {
statusObscurity.setHTML("NO");
hp1.remove(butNo);
}
});
hp1.add(butYes);
hp1.add(butNo);
}
}
);
butObscurity.setStyleName("editButton");
Но, очевидно, затмение подчеркивает метод удалить, давая мне ошибку:
The local variable butYes may not have been initialized
Итак, есть ли какие-либо идеи о том, как это сделать? Или есть какой-нибудь способ?
Я также думал о создании счетчика, но это тоже не работает.
Извините, если это глупый вопрос, но я совершенно новичок в GWT.
P.S. Искал сайт по аналогичному вопросу, нашел только отключение, но это НЕ то, что мне нужно.
hp1 является HorizontalPanel? –
Попробуйте создать кнопку сначала, чтобы инициализировать ее, а затем добавить обработчик кликов (два отдельных оператора). Это должно предотвратить ошибку Eclipse, так как теперь YES будут инициализированы. – MikeJ
@ShiladittyaChakraborty, да, это так. –