Как добавить отступы в JCombobox - PullRequest
1 голос
/ 23 марта 2012

Представьте себе Panel с редактируемыми JCombobox и JTextfield в вертикальном порядке.

Textfield отображает содержимое с небольшим отступом к левому краю, Combobox - нет.

Кто-нибудь знает, как я могу добавить этот отступ к JCombobx?

Я пытался установить средство визуализации, но Javadoc говорит:

Устанавливает средство визуализации, которое рисует элементы списка и выбранный элемент. из списка в поле JComboBox. Рендерер используется, если JComboBox не редактируемые. Если это редактируемый, редактор используется для визуализации и редактирования выбранный пункт.

С наилучшими пожеланиями Marco

Ответы [ 4 ]

0 голосов
/ 22 марта 2013

очень простое исправление для рендеринга пространства ....

создайте визуализатор ячеек и добавьте его в поле со списком, добавив пробел или просто добавив

setBorder (новый EmptyBorder (1, 1, 1, 1)); o рендер ячейки

либо

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

        JComponent comp = (JComponent) super.getListCellRendererComponent(list, " "+value, index, isSelected, cellHasFocus);

        return comp;
    }

или

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

        JComponent comp = (JComponent) super.getListCellRendererComponent(list,value, index, isSelected, cellHasFocus);
        comp.setBorder(new EmptyBorder(1, 1, 1, 1));
        return comp;
    }
0 голосов
/ 23 марта 2012

Вы можете использовать JTextField#setMargin, чтобы избавиться от маржи.Не совсем то, что вы просили, но эй, ваши компоненты будут выровнены.

Другое решение состоит в том, чтобы использовать FlowLayout, используйте setHGap, чтобы вручную установить расстояние междуграницы контейнера и компонентов, и все еще используйте метод JTextField#setMargin, чтобы убедиться, что флажок и текстовое поле выровнены

0 голосов
/ 23 марта 2012

Это зависит от того, какой LayoutManager вы используете, если я вас правильно понял.В этом примере: http://pastebin.com/PFr1jafP вы не увидите ни одного упомянутого вами отступа.

Попробуйте получить небольшой пример кода / снимок экрана с тем, чего вы пытаетесь достичь, чтобы получить лучшие ответы.

0 голосов
/ 23 марта 2012

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

...