如何让JComboBox下来出来的菜单大于本身的宽度!
因为设定了JComboBox宽度,所以如果下拉选项的内容特别多,就显示不出来了,有没有办法让它都显示出来?
public class WideComboBox extends JComboBox{
public WideComboBox() {
}
public WideComboBox(final Object items[]){
super(items);
}
public WideComboBox(Vector items) {
super(items);
}
public WideComboBox(ComboBoxModel aModel) {
super(aModel);
}
private boolean layingOut = false;
public void doLayout(){
try{
layingOut = true;
super.doLayout();
}finally{
layingOut = false;
}
}
public Dimension getSize(){
Dimension dim = super.getSize();
if(!layingOut)
dim.width = Math.max(dim.width, getPreferredSize().width);
return dim;
}
}
本文介绍了一个自定义的 JComboBox 类——WideComboBox,通过继承 JComboBox 并重写 getSize 和 doLayout 方法来实现下拉菜单宽度大于组件本身的宽度。这解决了当设定 JComboBox 宽度后,下拉选项内容过多无法完全显示的问题。
3742

被折叠的 条评论
为什么被折叠?



