2013-11-28 52 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