Java Wicket-DropDownChoice-选项的标题(工具提示)

Java Wicket-DropDownChoice-选项的标题(工具提示),java,wicket,Java,Wicket,有没有办法让Wicket中的DropDownChoice为各个选项元素指定工具提示(例如标题属性) 我有以下形式的selectbox项目: public class SelectBoxItem { private Long id; private String label; private String description; } 所有项目都从数据库中加载 我使用ChoiceRenderer配置DropDownChoice组件,将ID用作键,将标签用作值 现在,我需要

有没有办法让Wicket中的DropDownChoice为各个选项元素指定工具提示(例如标题属性)

我有以下形式的selectbox项目:

public class SelectBoxItem
{
    private Long id;
    private String label;
    private String description;
}
所有项目都从数据库中加载

我使用ChoiceRenderer配置DropDownChoice组件,将ID用作键,将标签用作值

现在,我需要将其配置为将描述用作工具提示消息


我只是在网上找到的。浏览相关的Wicket类让我得出了与作者相同的结论,例如,这在当前版本的DropDownChoice/ChoiceRender类中可能是不可能的。是这样吗?在这种情况下,是否有一个类似的组件允许这样做



(有关我的代码库的更全面的描述,请参阅我在同一上下文中询问的不同问题的位置。)

您是否尝试过重写方法appendOptionHtml?您可以使用它附加所需的html(即title=“toolTipText”)。

以下是我解决此问题的方法。非常感谢Andrea Del Bene的建议

public class TitledDropDownChoice<T> extends DropDownChoice<T> {

//  ... constructors from superclass ...

@Override
protected void appendOptionHtml(AppendingStringBuffer buffer,
        T choice, int index, String selected) {

    super.appendOptionHtml(buffer, choice, index, selected);

    // converts <option value="foo">bar</option> to
    // <option value="foo" title="bar">bar</option>
    String replString = "value=\"" + getChoiceRenderer()
        .getIdValue(choice, index) + "\"";
    int pos = buffer.indexOf(replString);
    buffer.insert(pos + replString.length(), 
        " title=\"" + getChoiceRenderer().getDisplayValue(choice) + "\"");

}

}
public类TitledDropDownChoice扩展了DropDownChoice{
//…来自超类的构造函数。。。
@凌驾
受保护的无效appendOptionHtml(AppendingStringBuffer缓冲区,
T选项、整数索引、选定字符串){
super.appendOptionHtml(缓冲区、选项、索引、选定项);
//将条形图转换为
//酒吧
String replString=“value=\”“+getChoiceRender()
.getIdValue(选项,索引)+“\”;
int pos=buffer.indexOf(replString);
buffer.insert(pos+replString.length(),
“title=\”“+GetChoiceRender().getDisplayValue(选项)+”\”;
}
}