当我将JComboBox放入带有GridBagLayout的JPanel时,我发现最长的JComboBox项目不会完全显示,而是显示部分带有'...'
例如,它显示'医疗成分'的'医疗保健成分'。
请看一下截图:
代码是这样的:
JPanel infoPanel = JPanel(new GridBagLayout());
dataTypeCB = new JComboBox(dataTypeList.toArray());
infoPanel.add(dataTypeCB, new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0, 0));
我已经找到了两个解决方案:
第二个解决方案的代码:
dataTypeCB = new JComboBox(dataTypeList.toArray());
JPanel dataTypeCBPanel = new JPanel();//make item can be fully show up.
dataTypeCBPanel.add(dataTypeCB, BorderLayout.CENTER);
infoPanel.add(dataTypeCBPanel, new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0, 0));
我的问题是:还有其他简单方法可以解决这个问题吗?
环境:带有JDK 1.6_25(64位版本)的Windows 7
非常感谢
答案 0 :(得分:7)
答案 1 :(得分:0)
自己解决这个问题。
我得到这个的原因是因为我使用名为“JIDE”的库,它将LookAndFeel带入我的应用程序。
我测试了JDK的默认外观,他们看起来没有这个问题。 然后我切换到JIDE的外观和感觉,然后我可以重现这个问题。
所以我认为这个问题与LookAndFeel有关。 ComboBoxUI类。
所以我真正需要做的是编写自己的ComboBoxUI或扩展JIDE库中的UI类。
很抱歉没有提供足够的信息,当我提问时,我没有意识到它与LookAndFeel有关。
由于