GWT 研究. 1.7 版本.
使用的是google的插件.
最新的eclipse 3.5
gwt 版本是 1.7.
花了一天时间写点demo 看看这些组件都怎么使用的..
?
1
GWT1.7版本下面是不推荐使用Listener了.而改用Handler了.
似乎这样每一个button都可以添加子节点handler了.
然后在上面编写代码.
?
2
在内部类里面要调用父类的属性的时候.要添加fianl字段.
但是这并不是说这个类不可修改.这类的属性可以修改.
?
3.要是保存临时数据.
可以通过创建数组的方式去实现.
比如 final? int[]? userNo = { 0 };
?然后在内部类里面
?
testRPCButton.addClickHandler(new ClickHandler() {
??? ??? ??? public void onClick(ClickEvent event) {
??? ??? ??? ??? userNo[0] = 1;
??? ??? ??? ??? });
??? ??? ??? }
??? ??? });
通过这样的方式进行赋值.
?
4,都换成handler.
然后在这里面对其他Wiget进行操作.(这些wiget必须都是final的.)
?
5,在client里面是不可以用java.util.Random()的.
?
作为替换的使用:
com.google.gwt.user.client.Random
Random.nextInt() 下面的静态方法取得.
?
6,面板是没有addHandler的方法的.
?
7.在rcp当中要做的:
1) 创建借口并(在client包下)添加@RemoteServiceRelativePath("testRPC")
testRPC是定义的url.
2)借口必须.extends RemoteService
3)创建interface TestRPCAsync 回调接口.
4)实现接口.(在servic包下.)
5)在web.xml里面添加servlet(很重要否则报错:
?
2009-9-7 8:18:18 com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /test002/testRPC
?
?<!-- Servlets -->
? <servlet>
??? <servlet-name>testRPC</servlet-name>
??? <servlet-class>com.demo.test.server.TestRPCImpl</servlet-class>
? </servlet>
?
? <servlet-mapping>
??? <servlet-name>testRPC</servlet-name>
??? <url-pattern>/test002/testRPC</url-pattern>
? </servlet-mapping>
6)gwt中声明接口.
private final TestRPCAsync testRPCAsync = GWT.create(TestRPC.class);
7)在onclick中使用.
?
testRPCButton.addClickHandler(new ClickHandler() {
??? ??? ??? public void onClick(ClickEvent event) {
??? ??? ??? ??? System.out.println("here call function.");
??? ??? ??? ??? testRPCAsync.getString(new AsyncCallback<String>() {
??? ??? ??? ??? ??? public void onSuccess(String result) {
??? ??? ??? ??? ??? ??? System.out.println(result);
??? ??? ??? ??? ??? ??? Window.alert(result);
??? ??? ??? ??? ??? }
??? ??? ??? ??? ??? public void onFailure(Throwable caught) {
??? ??? ??? ??? ??? ???
??? ??? ??? ??? ??? }
??? ??? ??? ??? });
??? ??? ??? }
??? ??? });
详细参考附件代码.
?
?
?
?
?
?
?
?
?
?