При создании JComboBox и использовании своего компонента для рендера, некорректно отображается popupmenu до первого выбора:
Как только первый выбор сделан, все нормализуется:
Мой рендер:
class PanelShow extends JPanel
{
private JLabel name;
private JLabel text;
private LevelBar rating;
private JLabel voices;
public PanelShow(Enty enty)
{
ImageIcon defaultIcon = new ImageIcon(getClass().getResource("/ru/ezhov/test/example/31g.png"));
name = new JLabel("<html><b>" + enty.getName() + "</b>");
name.setMaximumSize(new Dimension(40, 100));
name.setMinimumSize(new Dimension(40, 100));
name.setPreferredSize(new Dimension(40, 100));
name.setHorizontalAlignment(SwingConstants.CENTER);
text = new JLabel("<html>" + enty.getDep());
text.setMaximumSize(new Dimension(200, 100));
text.setMinimumSize(new Dimension(200, 100));
text.setPreferredSize(new Dimension(200, 100));
voices = new JLabel(enty.getVoicesText());
ImageProducer ip = defaultIcon.getImage().getSource();
List<ImageIcon> list = Arrays.asList(
makeStarImageIcon(ip, 1f, .5f, .5f),
makeStarImageIcon(ip, .5f, 1f, .5f),
makeStarImageIcon(ip, 1f, .5f, 1f),
makeStarImageIcon(ip, .5f, .5f, 1f),
makeStarImageIcon(ip, 1f, 1f, .5f));
rating = new LevelBar(defaultIcon, list, enty.getRating());
rating.repaintIcon(enty.getRating());
setLayout(new GridLayout(1, 3));
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
panel.setPreferredSize(new Dimension(200, 100));
panel.setMinimumSize(new Dimension(200, 100));
panel.setMaximumSize(new Dimension(200, 100));
panel.add(name);
panel.add(text);
add(panel);
add(rating);
add(voices);
setPreferredSize(new Dimension(100, 100));
setMinimumSize(new Dimension(100, 100));
setMaximumSize(new Dimension(100, 100));
}
Нашел ошибку:
изначально JComboBox создавался так:
Enty[] entys =
{
new Enty(),
new Enty(),
new Enty(),
new Enty()
};
JXComboBox comboBox = new JXComboBox(entys);
comboBox.setRenderer(new LSR());
переписал на:
Enty[] entys =
{
new Enty(),
new Enty(),
new Enty(),
new Enty()
};
JXComboBox comboBox = new JXComboBox();
comboBox.setRenderer(new LSR());
comboBox.setModel(new DefaultComboBoxModel(entys));
все заработало.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеПодскажите пожалуйста, на некоторых сайтах встречаю произвольные теги
Добрый день, есть задача выводить сообщения(коменты) на страницуВывожу их циклом:
В шапке есть иконка (картинкой)После добавление flexbox в шапку проекта она исчезла, я так понял вышла за пределы блока