使用UIBinder的GWT自定义按钮

这是一个有关如何在GWT上使用UIBinder创建自定义按钮的示例。
public class GwtUIBinderButton implements EntryPoint {public void onModuleLoad() {Button button = new Button();button.setText("Button");button.addClickHandler(new ClickHandler(){@Overridepublic void onClick(ClickEvent event) {Window.alert("Button clicked");}});RootPanel.get("container").add(button);}
}
public class Button extends Composite implements HasText, HasClickHandlers, ClickHandler{private static ButtonUiBinder uiBinder = GWT.create(ButtonUiBinder.class);interface ButtonUiBinder extends UiBinder<Widget, Button> {}@UiField(provided=true)FocusPanel pane = new FocusPanel();@UiField(provided=true)Label label = new Label();public Button() {pane.addClickHandler(this);initWidget(uiBinder.createAndBindUi(this));}@Overridepublic HandlerRegistration addClickHandler(ClickHandler handler) {return addHandler(handler, ClickEvent.getType());}@Overridepublic void onClick(ClickEvent event) {this.fireEvent(event);}@Overridepublic String getText() {return label.getText();}@Overridepublic void setText(String text) {label.setText(text);}}
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"xmlns:g="urn:import:com.google.gwt.user.client.ui"><ui:style>.button{background-color: #eeeeee;background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #cccccc));background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);background-image: -o-linear-gradient(top, #eeeeee, #cccccc);background-image: linear-gradient(top, #eeeeee, #cccccc);border: 1px solid #ccc;border-bottom: 1px solid #bbb;-webkit-border-radius: 3px;-moz-border-radius: 3px;-ms-border-radius: 3px;-o-border-radius: 3px;border-radius: 3px;color: #333;font: bold 11px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;line-height: 1;padding: 0px 0;text-align: center;text-shadow: 0 1px 0 #eee;width: 120px; }.button:hover{background-color: #dddddd;background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dddddd), color-stop(100%, #bbbbbb));background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);background-image: linear-gradient(top, #dddddd, #bbbbbb);border: 1px solid #bbb;border-bottom: 1px solid #999;cursor: pointer;text-shadow: 0 1px 0 #ddd;}.button:active{border: 1px solid #aaa;border-bottom: 1px solid #888;-webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; }.pane{text-align: center;}</ui:style><g:SimplePanel ui:field="pane" styleName="{style.button}"><g:Label ui:field="label"></g:Label></g:SimplePanel>
</ui:UiBinder>

添加图像:

<g:SimplePanel ui:field="pane" styleName="{style.button}"><g:HTMLPanel><table align="center"><tr><td><g:Image styleName="{style.pane}" url="gwt-logo-42x42.png"></g:Image></td><td><g:Label ui:field="label"></g:Label></td></tr></table></g:HTMLPanel></g:SimplePanel>

点击查看演示

参考:来自GlyphSoft博客的JCG合作伙伴 Mark Andro Silva 使用UIBinder的GWT自定义按钮 。


翻译自: https://www.javacodegeeks.com/2012/03/gwt-custom-button-using-uibinder.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

delete postman 传参_PostMan 传参boolean 类型,接口接受的值一直是false

情形&#xff1a;最近写前台页面的一个按钮&#xff0c;功能是&#xff1a;点击后切换状态&#xff0c;显示是或否。字段名称是isTest,类型是boolean 。写完接口&#xff0c;拿postMan测试&#xff0c;传参如下&#xff1a;但是后台接口接受的数据 一直是false,处理&#xff1a…

前端学PHP之文件操作

前端学PHP之文件操作 前面的话 在程序运行时&#xff0c;程序本身和数据一般都存在内存中&#xff0c;当程序运行结束后&#xff0c;存放在内存中的数据被释放。如果需要长期保存程序运行所需的原始数据&#xff0c;或程序运行产生的结果&#xff0c;就需要把数据存储在文件或数…

腾讯云CentOS6.5下安装mysql,并配置好远程访问等权限,途中遇到的问题

1.使用yum命令安装mysql [rootbogon ~]# yum -y install mysql-server 2.设置开机启动 [rootbogon ~]# chkconfig mysqld on 3.启动MySQL服务 [rootbogon ~]# service mysqld start 4.设置MySQL的root用户设置密码 [rootbogon ~]# mysql -u root mysql> select u…

休眠性能提示:脏收集效果

在使用Hibernate作为ORM开发服务器和嵌入式应用程序8年后&#xff0c;我全力以赴地寻求提高Hibernate性能的解决方案&#xff0c;阅读博客和参加会议&#xff0c;我决定与您分享这几年获得的知识。 这是更多新帖子中的第一篇&#xff1a; 去年&#xff0c;我以Devoxx的身份参加…

java runtime 异常_Java中RuntimeException和Exception

在java的异常类体系中,Error和RuntimeException是非检查型异常&#xff0c;其他的都是检查型异常。所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类不可以在不声明的情况下抛出非RuntimeException简单的说&#xff0c;非RuntimeException必要自己写catch块处…

BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]

3130: [Sdoi2013]费用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 960 Solved: 505[Submit][Status][Discuss]Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识。 最大流问题&#xff1a;给定一张有向图表示运输网络…

Linux Shell 003-变量

Linux Shell 003-变量 本节关键字&#xff1a;Linux、Shell、变量、全局变量、系统变量 相关指令&#xff1a;read、echo、unset、export 变量的含义 变量是用来临时保存数据的&#xff0c;该数据是可以变化的数据。如果某个内容需要多次使用&#xff0c;并且在代码中重复出现…

Java自动机实现

这篇文章将解决在Java中实现有限状态机的问题。 如果您不知道什么是FSM或在什么地方可以使用FSM&#xff0c;您可能会热衷于阅读此 &#xff0c; 这个和这个 。 如果您发现自己在设计上使用FSM的情况&#xff0c;则可能已经开始为实现相同接口的每个状态编写类。 一个好的设计可…

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files这个文件找不到

在C:\Windows\Microsoft.NET\Framework64\v4.0.30319文件夹下面建立Temporary ASP.NET Files 文件夹&#xff08;Framework64 注意64&#xff0c;这个可能是我们用的64位系统&#xff0c;但是vs2010不分32位还是64位&#xff0c;所以在C:\Windows\Microsoft.NET\Framework\v4.0…

java电脑运行视频演示_javaweb视频第一天(二)

无论通过哪种方式得到的class类对象&#xff0c;是同一个。比较的是地址码这里教会你&#xff1a;如何去使用class对象现在就知道这个&#xff1a;如何使用反射&#xff0c;并且说反射是实现了什么样的功能。如何通过反射得到里面的相应字段&#xff0c;得到里面的相应函数等等…

模型驱动 ModelDriven

ModelDriven:模型驱动,对所有action的模型对象进行批处理. 我们在开发中&#xff0c; 在action中一般是用实体对象&#xff0c;然后给实体对象get&#xff0c;set方法。 RegAction{   User user ;   //get/set} 然后在jsp页面中给action中的user属性绑定值是通过如下方式 &…

本月风味– Neo4j和Heroku

Neo4j今年早些时候发起了一项挑战&#xff0c;即“ 种子播云 ”&#xff0c;以使人们使用Neo4j附加组件在Heroku上创建模板或演示应用程序。 经过许多内部辩论之后&#xff0c;我决定进入&#xff0c;但由于缺乏想法而陷入绝望。 当我什么都没做的时候&#xff0c;这个主意就出…

1 + 11 + 1111+ 11111+ ..... + 11111(2016个) 结果是几位数

# -*- coding: utf-8 -*- """ Created on Mon Mar 21 20:38:06 2016author: yanjie """1 11 1111 11111 ..... 11111(2016个) 结果是几位数 用什么数据结构 有几个6 写算法a []; m 0; six 0; for i in range(2016,0,-1):b (im) % 10;m (…

[回归分析][10]--相关误差的问题

[回归分析][10]--相关误差的问题这一篇文章还是来分析相关误差的问题。 1.游程数 定义&#xff1a;游程数--残差穿过x-轴的次数 用这个可以检查如残差有一块在x轴上面&#xff0c;一块在x轴下面的情形。 如上面这样的残差 下面构造两个统计量&#xff1a; 其中 n…

Spring 3 MVC异常处理程序

我遇到的大多数Spring 3错误处理示例代码似乎都提供了其用法的最简单概述&#xff0c;但是&#xff0c;有人说&#xff0c;如何处理错误比正常代码的工作方式更为重要。 前一天&#xff0c;当我在Spring&#xff08;2&#xff09;错误处理程序中遇到一个简单的GOTCHA时&#xf…

java编译找不到符号_javac编译时找不到符号?

我是个新手&#xff0c;在linux使用java编程时&#xff0c;出现这个情况。我把要引的包放在classpath中&#xff0c;红色部分&#xff1a;export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/hadoop-1.0.4.core.jar:${CLASSPATH}通过echo $CLASSP…

全备份、差异备份和增量备份概念详述

全备份、差异备份和增量备份概念详述 1、完全备份&#xff08;Full Backup&#xff09; 备份全部选中的文件夹&#xff0c;并不依赖文件的存档属性来确定备份那些文件。在备份过程中&#xff0c;任何现有的标记都被清除&#xff0c;每个文件都被标记为已备份。换言之&#xff0…

微信接入登录功能access_token流程记录

提示&#xff1a;只有认证过的订阅号或者服务号才能获取access_token。 1.app微信登录第一步是&#xff0c;app调起来微信客户端&#xff0c;通过app端的配置&#xff0c;引入一个微信类库&#xff0c; 2.授权成功后&#xff0c;微信会返回你一个code。 将APP_ID替换成你在微信…

使用MVC模式制作游戏-教程和简介

游戏开发中一种有用的体系结构模式是MVC&#xff08;模型视图控制器&#xff09;模式。 它有助于分离输入逻辑&#xff0c;游戏逻辑和UI&#xff08;渲染&#xff09;。 在任何游戏开发项目的早期阶段&#xff0c;其实用性很快就会被注意到&#xff0c;因为它允许快速更改内容&…

boost

参考博客 http://www.cnblogs.com/lidabo/p/3805487.html http://www.cppblog.com/Robertxiao/archive/2013/01/06/197022.html http://www.cnblogs.com/finallyliuyu/archive/2013/05/23/3094246.html http://www.cnblogs.com/lidabo/p/3782193.html http://www.cnblogs.com/z…