Не создавайте свою форму в виде строки.
Когда вы пытаетесь объединить виджет (Button
или TextBox
) со строкой, вызывается метод toString()
виджета.
"string" + sendbutton + "string"
действительно:
"string" + sendbutton.toString() + "string"
toString()
возвращает HTML-фрагмент виджета, но он не будет содержать никаких обработчиков. Вот почему ClickHandler
никогда не будет выполнен.
Вместо этого вы должны создать свою форму, используя некоторую панель, например Grid
или FlexTable
.
Например:
public static Grid searchAnyTransaction(Button sendbutton, TextBox namefield2){
Grid grid = new Grid(1, 4);
grid.setText(0, 0, "Search");
grid.setText(0, 1, "PID:");
grid.setWidget(0, 2, namefield2);
grid.setWidget(0, 3, sendbutton);
return grid;
}
и добавьте его в TabPanel следующим образом:
tabPanel.add(searchAnyTransaction(sendButton, nameField), "Transaaction Status");