【问题标题】:How to change height of a jpopupmenu in a jcombobox?如何更改 jcombobox 中 jpopupmenu 的高度?
【发布时间】:2016-07-10 14:03:17
【问题描述】:

我正在开发一个应用程序,在该应用程序中,我通过可编辑的“JComboBox”处理按键释放事件,在每个按键释放时,都会出现“JComboBox”的“JPopupMenu”。我想增加高度,以便用户无需滚动就能一眼看到更多项目。 任何人都可以演示如何故意设置“JPopupMenu”的高度,以便显示大量项目吗? 到目前为止,我已经尝试过,但它不起作用。

combo.getComponentPopupMenu().setSize(10, 10);

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:

    尝试以下操作:

    ComboPopup popup = (ComboPopup) combo.getUI().getAccessibleChild(combo, 0);
    ((JComponent) popup).setPreferredSize(size);
    ((JComponent) popup).setLayout(new GridLayout(1, 1));
    

    很高兴看到你的SSCCE,所以我可以测试我的建议是否有效。

    【讨论】:

    • 谢谢让我试试,我会告诉你的。
    • 您的提议可以增加 JPopupMenu 的高度,但弹出窗口中的滚动条仍然很小,因此在弹出窗口中仍然看不到足够的项目。
    • 我上传了图片,请检查
    • @Deepeshkumar 我已经添加了一行。请尝试一下。
    • 天哪,太棒了,成功了。感谢您的帮助。您对秋千组件的了解很有趣。非常感谢。
    【解决方案2】:

    仅使用公共 API(且不使用 hack)的更简洁的方法是:

    • 使用其布局设置 JComboBox 的宽度(在其父级上使用 setLayout 方法) - 这也将设置 JPopupMenu 的宽度
    • 使用 JComboBox.setMaximumRowCount 设置 JPopupMenu 的高度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2015-08-22
      • 1970-01-01
      相关资源
      最近更新 更多