我试图制作一个多列JComboBox。我环顾四周,这似乎是一件非常棘手的事情。除非有很多人,否则我不想拥有一个表格(在其中选择一行):我需要消除JComboBox中的滚动条,为了达到这个目的,我想将它的项目放在多列列表中,而不是只将它们放在一列中。如何将另一个LayoutManager应用于JComboBox? (多列JComboBox尝试)
我最好的选择,到目前为止是这样做:
JComboBox dropdown = new JComboBox(validValues);
CellRendererPane crp = (CellRendererPane) dropdown.getComponent(1);
crp.setLayout(new GridLayout(4, 4)); // for 16 items...
但它不工作。它仍然在单个列中放置单元格。我在设置LayoutManager之后尝试添加项目,但它不影响结果。
任何人都有关于如何实现这一目标的线索?
到目前为止,我已经看到ListCellRenderer是无用的。它只规定了如何绘制一个单元格(一次一个),而不是如何绘制所有单元格(它们彼此的相对位置是什么)。
欢迎任何帮助!
谢谢!
MJ
谢谢!几乎所有的工作......直到细胞原型线。我设法有一个巨大的弹出窗口,一个巨大的JList,但JScrollPane(JList所在的)仍然是JComboBox的宽度。我设置的单元格原型(looong JLabel)仅影响单元格的大小(可能是JList;我看到单元格大得多),但不是JScrollPane的宽度(或者是因为JViewport?)。任何想法? – Joanis 2011-03-07 23:56:37
@ M.Joanis,见上面的编辑。 – camickr 2011-03-08 04:29:31