Привет У меня есть следующая странная проблема:
У меня есть приложение gwt.он содержит 3 виджета изображения и кнопку.при нажатии кнопки я вызываю функцию X (), а затем внутри XI вызываю Test (экземпляр testscan), передавая экземпляр функции Javascript.
Теперь взгляните на функцию тестирования.Я пытаюсь вызвать функцию Java с именем "updateImageContent" оттуда. Синтаксис написан в соответствии с документацией GWT.
Когда я запускаю приложение, экземпляр класса "testscan" равен Null, в чем может быть причина?
public class testscan implements EntryPoint {
private Image image_0 = new Image("home.gif");
public void onModuleLoad() {
RootPanel rootPanel = RootPanel.get("main_panel");
rootPanel.getElement().getStyle().setPosition(Position.RELATIVE);
VerticalPanel verticalPanel = new VerticalPanel();
rootPanel.add(verticalPanel, 5, 5);
verticalPanel.setSize("100%", "100%");
HorizontalPanel horizontalPanel = new HorizontalPanel();
verticalPanel.add(horizontalPanel);
horizontalPanel.setSize("100%", "100%");
Image image_1 = new Image("home.gif");
horizontalPanel.add(image_1);
image_1.setSize("180px", "180px");
horizontalPanel.add(image_0);
image_0.setSize("180px", "180px");
Image image_2 = new Image("home.gif");
horizontalPanel.add(image_2);
image_2.setSize("180px", "180px");
Button btnScan = new Button("Scan");
verticalPanel.add(btnScan);
btnScan.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
x();
}
});
}
public void x()
{
Test(this);
}
public native void Test(testscan instance) /*-{
instance.@com.sflpro.testscan.client.testscan::updateImageContent()();
}-*/;
public void updateImageContent()
{
Window.alert("ok");
//String s = scanFileContent();
//Window.alert(s);
if(image_0==null)
Window.alert("bad");
else
Window.alert("good");
}