簡體   English   中英

GridBagLayout中的JComboBox寬度問題

[英]JComboBox width issue in GridBagLayout

當我將JComboBox放入帶有GridBagLayout的JPanel時,我發現最長的JComboBox項目不會完全顯示,而是顯示部分帶有'...'

例如,它顯示'醫療成分'的'醫療保健成分'。

請看這里的截圖:

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));

我已經找到了兩個解決方案:

  1. 覆蓋JComboBox的getPreferenceSize,但有點煩人。
  2. 使用JPanel包裝JComboBox,如下所示,但是經過扭曲的JPanel會引入一些意圖並導致對齊問題,但仍然不完美:

第二個解決方案代碼:

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));

我的問題是:還有其他簡單方法可以解決這個問題嗎?

環境:Windows 7與JDK 1.6_25(64位版本)

非常感謝

自己解決這個問題。

我得到這個的原因是因為我使用名為“JIDE”的庫,它將LookAndFeel帶入我的應用程序。

我測試了JDK的默認外觀,他們看起來沒有這個問題。 然后我切換到JIDE的外觀和感覺,然后我可以重現這個問題。

所以我認為這個問題與LookAndFeel有關。 ComboBoxUI類。

所以我真正需要做的是編寫自己的ComboBoxUI或擴展JIDE庫中的UI類。

很抱歉沒有給出足夠的信息,當我提問時,我沒有意識到它與LookAndFeel有關。

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM