如何让JComboBox下来出来的菜单大于本身的宽度!

本文介绍了一个自定义的 JComboBox 类——WideComboBox,通过继承 JComboBox 并重写 getSize 和 doLayout 方法来实现下拉菜单宽度大于组件本身的宽度。这解决了当设定 JComboBox 宽度后,下拉选项内容过多无法完全显示的问题。

如何让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;    
    }    
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值