是否可以使用gxt 2.5在按钮中添加复选框

时间:2012-09-03 12:01:48

标签: button checkbox gxt

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?

enter image description here

2 个答案:

答案 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');
}

参考文献(在GXT 2.2.5 API上)