为了发出调用,我已经将其添加到模块中,如清单 5 所示。注意,为使此调用正常工作,我向 HTML body 中添加了另一个有两个单元格的行,第一个单元格 ID 为 sender,第二个单元格 ID 为 response。模块现在有一个按钮,它用于从服务器中检索随机数并将其与单击次数相比较。
清单 5. 添加了调用的模块public class FirstModule implements EntryPoint { int count = 0; private Button button; private Button sender; private Label label; private Label response; public void onModuleLoad() { button = new Button("Count Your Clicks!"); sender = new Button("Send Your Count!"); label = new Label(String.valueOf(count)); response = new Label("No Guess Yet"); button.addClickListener(new CountButtonClickListener()); sender.addClickListener(new SendClickListener()); RootPanel.get("button").add(button); RootPanel.get("count").add(label); RootPanel.get("sender").add(sender); RootPanel.get("response").add(response); } public class CountButtonClickListener implements ClickListener { public void onclick(Widget sender) { count += 1; label.setText(String.valueOf(count)); } } public class SendClickListener implements ClickListener { public void onClick(Widget sender) { NumberGeneratorAsync async = NumberGenerator.Util.getInstance(); async.getNumber(10, new NumberCallback()); } } public class NumberCallback implements AsyncCallback { public void onFailure(Throwable error) { response.setText("Oops"); } public void onSuccess(Object resp) { int intResp = ((Integer) resp).intValue(); if (intResp == count) { response.setText("Got It!"); } else if (intResp < count) { response.setText("Too Low"); } else if (intResp > count) { response.setText("Too High"); } } }}
public class FirstModule implements EntryPoint { int count = 0; private Button button; private Button sender; private Label label; private Label response; public void onModuleLoad() { button = new Button("Count Your Clicks!"); sender = new Button("Send Your Count!"); label = new Label(String.valueOf(count)); response = new Label("No Guess Yet"); button.addClickListener(new CountButtonClickListener()); sender.addClickListener(new SendClickListener()); RootPanel.get("button").add(button); RootPanel.get("count").add(label); RootPanel.get("sender").add(sender); RootPanel.get("response").add(response); } public class CountButtonClickListener implements ClickListener { public void onclick(Widget sender) { count += 1; label.setText(String.valueOf(count)); } } public class SendClickListener implements ClickListener { public void onClick(Widget sender) { NumberGeneratorAsync async = NumberGenerator.Util.getInstance(); async.getNumber(10, new NumberCallback()); } } public class NumberCallback implements AsyncCallback { public void onFailure(Throwable error) { response.setText("Oops"); } public void onSuccess(Object resp) { int intResp = ((Integer) resp).intValue(); if (intResp == count) { response.setText("Got It!"); } else if (intResp < count) { response.setText("Too Low"); } else if (intResp > count) { response.setText("Too High"); } } }}
(编辑:aniston)
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录