使用GWT创建圆形按钮

使用GWT创建圆形按钮,gwt,Gwt,我已经按照这篇文章上的说明做了 创建我自己的圆形按钮,在视觉上看起来还行。 我现在要做的是为这个新类添加单击处理程序。我该怎么办?我是否需要图像和标签的单击处理程序?然后我必须做什么来使用CSS配置这个组件 这是到目前为止我的代码 公共类RoundButton扩展了复合类 { 受保护的最终标签文本持有者=新标签(“helasdfasdf”); 受保护的最终图像左侧=新图像(“/icons/left.ico”); 受保护的最终图像右侧=新图像(“/icons/right.ico”); 受保护的最终

我已经按照这篇文章上的说明做了 创建我自己的圆形按钮,在视觉上看起来还行。 我现在要做的是为这个新类添加单击处理程序。我该怎么办?我是否需要图像和标签的单击处理程序?然后我必须做什么来使用CSS配置这个组件

这是到目前为止我的代码

公共类RoundButton扩展了复合类
{
受保护的最终标签文本持有者=新标签(“helasdfasdf”);
受保护的最终图像左侧=新图像(“/icons/left.ico”);
受保护的最终图像右侧=新图像(“/icons/right.ico”);
受保护的最终水平面板内容表;
公共圆形按钮()
{
contentTable=新的水平面板();
initWidget(contentTable);
contentTable.add(左侧);
contentTable.add(textHolder);
contentTable.add(右侧);
}
公共void setText(字符串文本)
{
textHolder.setText(文本);
}   
}

您可以像下面这样捕捉到复合材料上的点击:

公共圆形按钮()
{
...
sinkEvents(Event.ONCLICK);
}
@凌驾
公共无效onBrowserEvent(事件)
{
超级浏览器事件(事件);
if(DOM.eventGetType(event)=event.ONCLICK)
{
...
}
}

为了使您的RoundButton更加标准化,我将实现
com.google.gwt.event.dom.client.HasClickHandlers
界面,并将单击事件添加到整个组件(即包装小部件):

public类RoundButton扩展了复合实现hasClickHandler
{
受保护的最终标签文本持有者=新标签(“helasdfasdf”);
受保护的最终图像左侧=新图像(“/icons/left.ico”);
受保护的最终图像右侧=新图像(“/icons/right.ico”);
受保护的最终水平面板内容表;
公共圆形按钮()
{
contentTable=新的水平面板();
initWidget(contentTable);
contentTable.add(左侧);
contentTable.add(textHolder);
contentTable.add(右侧);
}
公共void setText(字符串文本)
{
textHolder.setText(文本);
}   
公共句柄注册addClickHandler(ClickHandler处理程序)
{
返回addDomHandler(handler,ClickEvent.getType());
}  
}

干杯,我如何使用CSS进行配置。我尝试使用一个公共的setMyHeight(int-height),它将设置每个子组件的高度,然后尝试查看是否这样做。CSS中的round{myHeight:10;}可以做任何事情,但它不起作用。我是不是在尝试做一些没有意义的事情?事实上,你的css并不是一个正确的方法。Gwt几乎不向css样式表添加任何附加属性(Sprite和Contanss除外),因此使用css时,您应该完全依赖css标准。因此,基本上,如果您不开发一个库,那么您的项目可能只有一个css样式表,您可以在其中定义所有样式。在小部件中,您可以使用
setStyleName
方法来应用它们。因此,我明白,将样式应用于新类的最佳/正确方法是将样式应用于构成它的各个组件?@MayoMan一般来说,是的。您可以定义应用程序样式所需的样式,并将其应用于必要的部分。