我正在从PNG图标创建一个图像按钮,我需要感觉按钮(但不是按钮效果)只是当用户点击图像时,会出现一个虚线方块(如选择),以便产生效果单击按钮。有什么想法吗?
答案 0 :(得分:5)
GWT中有这样的事情:
Hyperlink link = new Hyperlink();
Image image = new Image(imageUrl);
...
link.getElement().appendChild(image.getElement());
link.setStyleName("imgBtnLink");
添加/设置CSS样式:
.imgBtnLink:active {
border-style:dashed;
}
旧的JSFiddle示例: http://jsfiddle.net/Wsaf5/
答案 1 :(得分:1)
你可以创建自己的Widget,我有这个
public class ImageButton extends Button {
public ImageButton() {
super();
}
public void setImgSrc(String imgSrc) {
Image img = new Image(imgSrc);
String definedStyles = img.getElement().getAttribute("style");
img.getElement().setAttribute("style",definedStyles);
img.getElement().getStyle().setVerticalAlign(VerticalAlign.MIDDLE);
DOM.insertBefore(getElement(), img.getElement(), DOM.getFirstChild(getElement()));
}
@Override
public void setText(String text) {
Element span = DOM.createElement("span");
span.setInnerText(text);
span.getStyle().setPaddingLeft(5, Unit.PX);
span.getStyle().setPaddingRight(3, Unit.PX);
span.getStyle().setVerticalAlign(VerticalAlign.MIDDLE);
span.getStyle().setColor("black");
span.setAttribute("class", "arial12R6D6D6D");
DOM.insertChild(getElement(), span, 0);
}
}
答案 2 :(得分:1)
ToggleButton是合适的。
ToggleButton button = new ToggleButton();
button.setStyleName("toggle-button");
...
CSS:
.toggle-button {
outline: none;
border: none;
margin: 3px; /* border size */
background: transparent url(../img/toggle-button.jpg);
}
.toggle-button-down, .toogle-button-down-hovering {
margin: 0;
border: 3px #469 dashed; /* margin size */
}
答案 3 :(得分:0)
您可以在Click事件处理程序中为元素添加样式表吗? (添加样式依赖名称)。
或者,也许PushButton可能有用吗?
答案 4 :(得分:0)
我创建了一个简单的自定义窗口小部件类,它使用CSS和事件来显示自定义按钮:
活性: view.getContent()。add(new ImageButton(resource.comment(),resource.search(),resource.chechCircle(),new ClickCallback(){ public void onClick(){ Window.alert( “被点击!”); } }));
我使用UiBinder / Composite来控制布局和css和事件。 “ClickCallback”只是一个带有一个onClick方法的自定义界面
UiBinder文件在这里: http://www.acrinta.com/ImageButton.zip
Css在悬停时显示边框,MouseOverMouseOut可以与onClick交换相同的图像,在那里它会瞬间更改图像。可能会提出一些想法