Отображение текста выбранного элемента JComboBox только без значка? - PullRequest
1 голос
/ 18 июля 2011

У меня есть JComboBox, что его средство визуализации является JLabel с Icon для каждого элемента в комбинированном списке:

class ComboBoxRenderer extends JLabel implements ListCellRenderer {
    public Component getListCellRendererComponent(
                JList list,
                Object comboItemObject,
                int comboItemIndex,
                boolean isSelected,
                boolean cellHasFocus) {
        String comboItemTitle = (String)comboItemObject;
        setText( comboItemTitle );
        setIcon( new ImageIcon( getClass().getResource( "/images/myIcon.png" ) ) );

        return this;
    }
}

Когда я выбираю элемент в поле со списком, я просто хочу показать текст выбранного элемента в поле со списком, а не значок элемента также. Есть ли способ, которым я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 18 июля 2011

В коде рендеринга вы можете проверить индекс.Что-то вроде:

if (index == -1)
{
    setText(...);
}
else
{
    setText(...);
    setIcon(...);
}

Кроме того, вы не должны читать изображение в коде рендеринга, поскольку код вызывается часто.

1 голос
/ 18 июля 2011

тогда вам нужно переопределить isSelected, а extends JLabel бесполезно, потому что средство рендеринга по умолчанию возвращает JLabel как Компонент

0 голосов
/ 17 сентября 2011

Чтобы получить текст в combobox;, достаточно кода с одним вкладышем.

Создайте переменную, как я назвал мою Combotext

затем получите SelectedItem от JComboBox.

 ComboText = jComboBox.getSelectedItem(); 
...