java - 调整 jcombobox 下拉菜单的宽度

标签 java jcombobox

有没有办法调整 JCombobox 的下拉窗口大小?

假设我有:

comArmor.setBounds(81, 102, 194, 26);

但是当用户选择该框并弹出下拉列表时,我希望下拉窗口展开以便完整显示一长行文本(比如 size x of 300)。

这可能吗?

最佳答案

enter image description here

即使组合框尺寸可以更小,也可以使弹出菜单尺寸足够大以显示项目的小技巧

来源:http://www.jroller.com/santhosh/entry/make_jcombobox_popup_wide_enough

    import java.awt.Dimension;
    import java.util.Vector;

    import javax.swing.ComboBoxModel;
    import javax.swing.JComboBox;

    public class ComboBoxFullMenu<E> extends JComboBox<E> {

        public ComboBoxFullMenu(E[] items) {
            super(items);
            addActionListener(this);
        }

        public ComboBoxFullMenu(Vector<E> items) {
            super(items);
            addActionListener(this);
        }

        public ComboBoxFullMenu(ComboBoxModel<E> aModel) {
            super(aModel);
            addActionListener(this);
        }

        /**
         * Small hack to get pop up menu size bigger enough to show items even though
         * the combo box size could be smaller
         * */
        private boolean layingOut = false; 

        @Override
        public void doLayout(){ 
            try{ 
                layingOut = true; 
                super.doLayout(); 
            }finally{ 
                layingOut = false; 
            } 
        } 

        @Override
        public Dimension getSize(){ 
            Dimension dim = super.getSize(); 
            if ( !layingOut ) {
                dim.width = Math.max(dim.width, getPreferredSize().width);
            }
            return dim; 
        }
    }

关于java - 调整 jcombobox 下拉菜单的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29057457/

相关文章:

java - 在 Java 中使用 hibernate 从数据库中填充组合框

java - jcombobox 在拖放中被选中

java - 将文件上传到本地 Eclipse 文件夹

java - 融合位置管理器 API 准确性

java - 如何让两个客户互相聊天?

java - 具体类实现访问权限较低的接口(interface)

java - java中的组合框问题

java - 如何在没有用户交互的情况下运行 servlet

java - 查找组合框弹出窗口的所有者

Java GUI通过组合框改变颜色,使用集合和对象数组