My Class扩展了gxt按钮,我想在按钮中添加一个复选框 但是没有方法可以在按钮中添加组件。
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
public class ButtonCheckBox extends Button {
private CheckBox checkBox;
public ButtonCheckBox() {
checkBox = new CheckBox();
checkBox.setBoxLabel("CheckBox");
setWidth(200);
}
}
如果可能,我如何在按钮中添加一个chckbox?
答案 0 :(得分:1)
感谢Eliran Malka,我使用以下代码完成了这项工作
import com.dips.pei.client.view.resources.Icons;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.widget.button.ToggleButton;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
public class CheckBoxButton extends ToggleButton {
public CheckBoxButton() {
setIcon(AbstractImagePrototype.create(Icons.INSTANCE.notcheckedIcon()));
setId("checkBoxButton");
}
@Override
protected void onClick(ComponentEvent ce) {
super.onClick(ce);
if(isPressed()){
setIcon(AbstractImagePrototype.create(Icons.INSTANCE.checkedIcon()));
}else{
setIcon(AbstractImagePrototype.create(Icons.INSTANCE.notcheckedIcon()));
}
}
}
答案 1 :(得分:0)
似乎无法使用GXT 2.x标准API,但可以使用HTML Template
来实现。
假设复选框的目的是作为按钮状态的指示器,我建议您改为使用ToggleButton
并修改其外观。您可以为其分配CSS类名,并根据其不同的状态应用不同的背景图像:
.my-toggle-button .x-btn-mc {
background-image: url('images/toggle-button/checkbox-off.png');
}
.my-toggle-button.x-btn-pressed .x-btn-mc {
background-image: url('images/toggle-button/checkbox-on.png');
}