gpt4 book ai didi

java - 带按钮的 GWT PopupPanel

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:43 24 4
gpt4 key购买 nike

我有一个扩展 smartgwt ImgButton 的类。按下按钮时,应显示一个包含更多按钮的弹出窗口。此弹出窗口中的按钮不应呈现为普通按钮,而应呈现为文本链接 - 因此我应用了自定义 CSS 类。到目前为止一切正常。但是当我按下弹出窗口中的任何按钮时,按钮的背景变得透明并且弹出窗口后面的文本闪耀。这很丑陋,但我找不到解决这个问题的方法。

有谁知道如何在按下按钮时保持背景颜色?

代码如下:

import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;

public class MultiButton extends ImgButton {

private PopupPanel popup;
private VerticalPanel content;

public MultiButton() {
super();
popup = new PopupPanel();
popup.setAnimationEnabled(true);
popup.setAutoHideEnabled(true);

content = new VerticalPanel();
popup.add(content);

this.setWidth(18);
this.setHeight(18);
this.setShowRollOver(false);
this.setShowDown(false);
this.setSrc("person.png");
this.addClickHandler(new ClickHandler() {

@Override
public void onClick(final ClickEvent event) {
popup.setPopupPositionAndShow(new PopupPanel.PositionCallback() {

@Override
public void setPosition(int offsetWidth, int offsetHeight) {
int left = event.getX() + 7;
int top = event.getY() + 7;

popup.setPopupPosition(left, top);
}
});
}
});
}

public void addMultiButtonEntry(String name, ClickHandler handler) {
Button b = new Button(popup.getStyleName());
b.addClickHandler(handler);

b.setShowHover(false);
b.setShowRollOver(false);

b.setBaseStyle("nt-multibutton-button");

b.setAlign(Alignment.LEFT);

content.add(b);
}
}

这是 CSS 定义:

.nt-multibutton-button {
border: 0px !important;
color: #657380;
font-size: 11px;
font-weight: bold;
text-align: left;
padding-left: 5px;
width:90%;
background-color: white;
}

谢谢你的每一个提示!

PS:我知道混合使用 SmartGWT 和 GWT 组件不是好的风格,但我在 SmartGWT 中没有找到 PopUp,我不想自己编写代码。

最佳答案

我刚刚知道怎么做。

我向按钮添加了样式主名称和样式名称,现在可以使用了:)

因此,弹出窗口的按钮现在创建如下:

    Button b = new Button(name);
b.addClickHandler(handler);

b.setShowHover(false);
b.setShowRollOver(false);

String css = "nt-multibutton-button";
b.setStylePrimaryName(css);
b.setBaseStyle(css);
b.setStyleName(css);

b.setAlign(Alignment.LEFT);

content.add(b);

关于java - 带按钮的 GWT PopupPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com