2013-11-28 54 views
0

我正在和JUNG一起工作,我設計了一個基於Show Layouts example的自定義渲染器......選擇佈局時一切都很好,但我不得不承認自定義渲染器與我的GUI中的其他jcombobox相比,其原始渲染器(我使用Swing和NetBeans 7.0)產生了一個非常醜陋的組合框。下面是對自定義渲染代碼:JComboBox自定義渲染器與GUI中的原始渲染器相比很醜陋

class ComboBoxRenderer extends javax.swing.plaf.basic.BasicComboBoxRenderer { 

    public ComboBoxRenderer() { 
     super(); 
     setOpaque(true); 
    } 

    @Override 
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { 

     super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); 

     if (value instanceof Class) { 
      String valueString = value.toString(); 
      valueString = valueString.substring(valueString.lastIndexOf('.') + 1); 
      setText(valueString); 
     } 
     return this; 
    } 
} 

有什麼我可以爲了保持原有的渲染器的同樣美麗的樣式添加到我的代碼?

最好的問候, 西蒙娜

+0

爲什麼使用'javax.swing.plaf.basic.BasicComboBoxRenderer'? – MadProgrammer

+0

@MadProgrammer請問爲什麼???,有差異(從您或我的看法) – mKorbel

回答

1

您使用javax.swing.plaf.basic.BasicComboBoxRenderer它有自己的裝飾。

嘗試使用DefaultListCellRenderer,它會看起來很漂亮,與其他人相同。

class ComboBoxRenderer extends DefaultListCellRenderer

+0

好吧,好像我得到了什麼錯誤......無論我使用BasicComboBoxRenderer還是DefaultListCellRenderer,結果都很醜陋(並且相同)。 ..我設法通過取消對jcombobox的最終靜態檢查來恢復到Acqua風格......這就實現了。 謝謝,西蒙娜 – user299791