JComboBox下拉框的下拉选项过长,达到了40多个选项,一次性全部显示出来了。
  我只想让它最大的显示 10行,brandComboBox.setMaximumRowCount(10); 这样设置都没有影响。
 因为用到了mac的风格包 ,受了它的影响,改不了。有什么其他的方式可以改变这个长度吗? 

解决方案 »

  1.   

    能否在PopupMenuListener中坐文章 在show的时候  置大小呢
      

  2.   

    在show的时候设置大小? 能否详细一点哦
      

  3.   

     嗨,
      public void changeModelValue(Device parentDevice) {
            brandList = new ArrayList<BrandBean>();
            List<String> brandIds = new ArrayList<String>();        String device_Type = parentDevice.getDeviceType();
            newEditPrecodePanel.brandComboBox.setMaximumRowCount(15);   //我在这里设置了它的最大长度都么用        if (null == PrecodeDeviceStore.getDeviceBrandIdList()) {
                newEditPrecodePanel.brandComboBox.addItem(null);
                return;
            }
            if (null == PrecodeDeviceStore.getBrandList()) {
                newEditPrecodePanel.brandComboBox.addItem(null);
                return;
            }
            brandList.add(new BrandBean("-1", "  All "));
            for (DeviceBrandBean elem : PrecodeDeviceStore.getDeviceBrandIdList()) {
                if (device_Type.equals(elem.getDeviceType().trim())) {
                    brandIds.add(elem.getBrandId() + "");
                }
            }
            if (brandIds.size() == 0) {
                newEditPrecodePanel.brandComboBox.addItem(null);
                return;
            }
            for (String id : brandIds) {
                for (BrandBean elem : PrecodeDeviceStore.getBrandList()) {
                    if (id.trim().equals(elem.getBrand_id().trim())) {
                        brandList.add(elem);
                    }
                }
            }
            if (null == brandList || brandList.size() == 0) {
                newEditPrecodePanel.brandComboBox.addItem(null);
                return;
            }        //设置Brand
            Collections.sort(brandList);
            for (BrandBean brand : brandList) {
                newEditPrecodePanel.brandComboBox.addItem(brand.getBrand_name());    //这是是把数据添加到JComboBox(brandComboBox)
            }
                }
      

  4.   

    在这里我看不出有什么问题 你有没有试过把setMaximumRowCount(15)加在你定义brandComboBox的地方?
    我项目里的JCombox都是使用默认的 没有设置过什么 但是当我添加许多内容进去的时候 当它增加到8行的时候 就会自动开始出现下拉条 再添加就都需要往下拉才能看见了
      

  5.   

    直接把brandList的元素存放10个不行?
      

  6.   

     都试过,如果没有引入哪个Jar包,就直接用的话,是可以设置改变显示长度的。
      

  7.   

    LZ 为什么一定要在mac的风格包下做呢?
      

  8.   

    哦 既然是客户的需求 那么你就可以名正言顺的跟客户谈判 就说JAVA在MAC包下面会出现这个小BUG 如果你们能接受 那么我们就可以交货了 如果你们不能接受 那么我们需要把合同重新签订一下了 因为这是属于项目中的一个新的需求了
      

  9.   

    忽忽 如果按严格意义上来讲 这属于新的需求 因为只要是在老的合同上没有特别说明你们必须做的和XP下一模一样的话 那么你们就已经完成了他的需求了 也就是说你们已经成功的把软件在MAC包下面做出来了 而且所有的功能都能正常使用 所以你们已经履行完了你们的合同 现在如果他要提出界面的更改 那就属于新的需求啊   当然 我仅仅是说按严格意义上来讲 但是在中国 一般这种情况下 都是客户一句话 你们就必须得做了 在这里我又不得不崇洋媚外一下 那就是外国的公司这方面就做的很好 他们在签订合同的时候就把各个方面 连最细微的东西都写进去了 这样的话 只要客户在合同上签了字 那么客户有任何一点点的改动 都需要重新签订合同的
      

  10.   

    恩恩,明白了,谢谢virginkj的讲解。也正如你说的,中国在这方面做的不严格,所以客户一句话,我们就得按他们的来。他们就把需求给你们了,那中间比较细致的地方也是认为你们程序员该想到的。