GWT的默认窗体控件,在右上角增加关闭按钮

Frenet坐标系下动态街道场景的最优轨迹生成 本文详细解读了Lattice Planner 阅读详情
笔者使用的GWT2.3,它的弹窗控件(DiagBox)默认是不提供关闭按钮的,因此对其进行改造。
要进行改造,首先应认识到,GWT的每一个控件,对应的其实都是HTML的实现,GWT也支持我们拿到html元素,然后对其做修改,例如,对于窗体控件,可以通过geCaption()方法,拿到窗体头部对象,然后将其转为HTML对象,也就是
HTML caption = (HTML) getCaption()。拿到这个caption这个HTML对象之后,就能调用getElement().appenChild()方法,在上面添加其他元素,例如添加一个关闭的按钮。之后再给这个关闭按钮添加点击事件就OK啦~

具体实现如下
public class MyDialogBox extends DialogBox
{

	private Label closeBtn;

	private Label captiontLabel;

	public MyDialogBox()
	{

		super();
		this.createCaptionWithClose();

		this.setModal(true);
		
		this.setAutoHideOnHistoryEventsEnabled(true);
		this.setAnimationEnabled(true);
		this.setGlassEnabled(true);

	}

	private void createCaptionWithClose()
	{
		closeBtn = new Label("×");
		closeBtn.setStylePrimaryName("close");

		FlexTable captionLayoutTable = new FlexTable();
		captionLayoutTable.setWidth("100%");
		captiontLabel = new Label("");
		captionLayoutTable.setWidget(0, 0, captiontLabel);
		captionLayoutTable.setWidget(0, 1, closeBtn);
		captionLayoutTable.getCellFormatter().setHorizontalAlignment(0, 1, HasHorizontalAlignment.HorizontalAlignmentConstant.endOf(HasDirection.Direction.LTR));

		HTML caption = (HTML) getCaption();
		caption.getElement().appendChild(captionLayoutTable.getElement());

		caption.addClickHandler(new ClickHandler()
		{
			@Override
			public void onClick(ClickEvent event)
			{
				EventTarget target = event.getNativeEvent().getEventTarget();
				Element targetElement = (Element) target.cast();

				if (targetElement == closeBtn.getElement())
				{
					closeBtn.fireEvent(event);
				}
			}
		});

		addCloseHandler(new ClickHandler()
		{
			@Override
			public void onClick(ClickEvent event)
			{
				hide();
			}
		});
	}

	public void addCloseHandler(ClickHandler handler)
	{
		closeBtn.addClickHandler(handler);
	}
}


一篇教你杰理63系列蓝牙双设备主从连接传输数据过程及配置 首先打开632sdk的app_config.h文件,将宏CONFIG_APP_SPP_LE写0,将宏CONFIG_APP_MULTI写1,对应的CONFIG_BT_GATT_CLIENT_NUM写1代表我只连接一个主机设备。属性都可以修改为自己想要的属性,然后关掉文件,双击gatt_inc_generator.exe文件运行,就会自动弹出生成/更新后的gatt_profile_cfg.h文件,然后里面就是我们代码里面所需要的配置,都是十六进制表示,找到我们刚刚添加的服务属性配置,复制到代码里面去。 阅读详情

相关推荐

GWT-Ext 控件演示

GWT-Ext 控件演示 GWT-Ext 控件演示

创建一个带有关闭按钮的Widget

首先打开QtCreator,文件 –> 新建文件或项目 –> Application(Qt) –> Qt Widgets Application –> Choose 。并在Details中将Base class 选择为 QWidget进行创建,QtCreator会自动生成一套模板。 代码的编写主要在Widget类的构造函数中进行。 可以通过如下代码声明并构建一个按钮对象。并调用其setParent()与setText()成员函数设置其父亲与按钮的文字内容。 QPushButt

FengLing的博客 1363

MSC所有软件安装MSC.License冲突终极解决方案[文].pdf

MSC所有软件安装MSC.License冲突终极解决方案[文].pdf

gwt利用HandlerManager创建event事件

gwt利用HandlerManager创建event事件By 王军, 2010年02月1日 11:49 下午    在学习和使用gwt过程中,会使用到大量的事件处理,是利用各个组件的监听器来完成的,很方便。但是有些情况我们需要自己定义一个事件,用来创建监听器。就像下面例子中的,当点击删除时,在另一个类中创建了一个对话框,当点击确认之后要把此事件告送给当前类,那么就需要在当前类里面创建监

junpeng88的专栏 1582

gwt关闭页面及页面转向

1,jsp中可以关闭一个页面而到另一个页面,那么在gwt中怎么解决呢?其实在gwt中只有一个页面,要实现“关闭”的功能是这样的 http://www.lovegirl.org.cn RootPanel.get().clear();//取得根panel(对应html中的body体),清除它的所有子对象,就是把整个页面的内容“关闭”,然后就可以再加入自己的新的内容。 这里也可以清除...

恐龙他爸 391

GWT中的事件与监听器

GWT应用程序运行时,当用户单击鼠标或按下键盘,GWT都会产生一个事件来相应用户的请求。所谓事件就是指在应用程序中我们关心的某些事情发生了,然后应用程序去处理这些事件。对这些事件做出相应的程序就叫做事件处理器。 GWT所支持的事件和java有些不同,因为GWT是WEB应用程序,所有GWT所支持的事件应该是web浏览器事件GWT支持浏览器可以捕获的所有事件,GWT所能捕获的事件请参考com.go

T` 5034

GWT EventBus

绝大部分开发人员都清楚MVC结构: M - model:代表数据模型 V - view:代表显示层 C - controller:代表逻辑控制层 这种结构降低了M-V-C之间的耦合性,使得模型可以独立于显示层和逻辑层的实现,即系统从struts改到struts 2的时候模型不需要做过多的更改;也使得显示层可以专注于显示,不需要对逻辑有任何了解或者参与,这样的好处是可以让前台开发人员专注于前...

广告业的程序员 322

如何在GWT实现点击Button(或其他Widget)打开文件选择对话框

最近用gwt-bootstrap实现UI开发,还不错,但FileUpload这个组件太占位置,所以我想用个Button取而代之。但FileUpload本身没有实现click()方法,google一番后,其实还是要调用底层的实现(很奇怪GWT为什么没有实现这个简单的click()方法)。 代码如下: fileUpload.getElement(). cast().click();

GoldyMark的专栏 1326

GWT事件处理

package com.zly.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; import com.google....

闲谈 288

GWT DEMO运行报错(java.lang.VerifyError)

界面错误图片展示: 后台控制台报错展示: 警告: Error for /gwttest/greet java.lang.VerifyError: Expecting a stackmap frame at branch target 6 in method com.nantian.app.server.GreetingServiceImpl.escapeHtml(Ljava/l

专注于java,站在巨人头顶看世界 1389

如何在一个控件右上角添加“X”关闭按钮

RT: .dialog { position: relative; } button { position: absolute; top: 0; right: 0; transform: translate(50%, -50%); } <div class="dialog"> <button>X</button> <...

Darion的博客 7894

gwt新窗口打开url设置

gwt项目中,需要在新窗口打开url时,最简单的就是使用window对象的open方法。在项目开发中,遇到这样一个问题,以新窗口打开的页面缺少菜单、地址栏、工具栏等,简单的说法就是模态窗口。由于一直是在firefox中进行测试,导致这个问题没有被察觉,firefox是将新窗口在新标签中打开,因此不存在模态的情况,但是在ie下此问题就浮出水面了。原始代码是类似这个样子的:Win

LE5YO 3682

gwt的mvp模式_GWT MVP变得简单

gwt的mvp模式 GWT Model-View-Presenter是用于大规模应用程序开发的设计模式。 它源于MVC,它在视图和逻辑之间进行划分,并有助于创建结构良好,易于测试的代码。 为了帮助像我这样的懒惰开发人员,我研究了如何减少使用声明式UI时要编写的类和接口的数量。 经典MVP 您知道如何在Facebook中发布链接吗? –最近,我不得不为一个小GWT旅行应用程序创建此功能。 ...

最佳 Java 编程 274

GWT 基本控件

public void onModuleLoad() { /* 上传组件 */ FileUpload fileUpload = new FileUpload(); RootPanel.get().add(fileUpload); /* 添加超链接 */ Hyperlink hyperlink = new Hyperlink(); hyperlink....

闲谈 222

GWT 使用HTML纯代码

HTMLPanel

开卷有益 1653

jquery的layer弹出层框架,如果设置 iframe弹出一个页面里是表单提交,提交完怎么关闭弹出层

首先,取得该iframe的层的times值 var index=$(window.parent.document).find('.layui-layer-shade').eq(0).attr('times'); 然后,执行关闭操作 parent.layer.close(index); //执行关闭 补充:操作document文档操作 $(frames.parent['layu

weinichendian的博客 3814

gwt之拖拉控件

最近想用gwt做界面,但gwt控件真是少的可怜,很多都得自己编写,真郁闷。 为了减少初学者的麻烦,我自己封装了个拖拉控件DualListField,供大家使用 由于ListBox支持多选择(按ctrl),但我查了他的所有方法却找不到能得到所有选择的项的方法,只能得到第一条被选的项,所以该DualListField只支持单个的拖拉或所有的拖拉。  ...

进击的莱鸟 170

(ZZ)IE的fireEvent方法

在IE中提供了一个fireEvent方法,顾名思义就是触发某个事件发生的意思。刚开始我以为是会跟平时使用onclick()一样,没想到最近在写javascript入门ppt的时候发现了,原来自己太自以为是了!看来还有很多javascript的细节没有掌握好啊! 现在根据自己的总结详细的记录下fireEvent方法的使用。fireEvent是IE提供的一种方法,msdn文档地址:http://...

millerrch的专栏 429
上一篇: struts validator例子
下一篇: java在访问https资源时,忽略证书信任问题
lizeyang
博客等级 码龄18年 103粉丝 48原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值