与GUI中的原始渲染器相比,JComboBox自定义渲染器很难看

时间:2013-11-28 11:33:42

标签: java swing jcombobox jung

我正在和JUNG合作,我在Show Layouts example的基础上设计了一个自定义渲染器...一切都很好选择布局,但我不得不承认自定义渲染器产生了一个非常难看的组合我的GUI中的其他jcombobox与其原始渲染器相比(我使用Swing和NetBeans 7.0)。这是自定义渲染器的代码:

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

为了保持原始渲染器的漂亮风格,我可以在代码中添加一些内容吗?

祝你好运, 西蒙

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

您使用具有自己装饰的javax.swing.plaf.basic.BasicComboBoxRenderer

尝试使用DefaultListCellRenderer,它看起来很漂亮,和其他人一样。

class ComboBoxRenderer extends DefaultListCellRenderer