我正在与JUNG合作,并且我已经基于Show Layouts example设计了一个自定义渲染器。选择布局时一切都很好,但是我不得不承认,与其他jcombobox相比,自定义渲染器产生了一个非常难看的组合框在我的GUI中使用其原始渲染器(我将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;
    }
}


我可以添加一些代码来保持原始渲染器的优美风格吗?

最好的祝福,
西蒙妮

最佳答案

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

尝试使用DefaultListCellRenderer,它将看起来很漂亮,与您的其他框相同。

class ComboBoxRenderer extends DefaultListCellRenderer

10-07 13:12
查看更多