отображение изображений в JComboBox - PullRequest
9 голосов
/ 18 октября 2010

Мне нужно отобразить изображение в JComboBox

Ответы [ 2 ]

10 голосов
/ 19 октября 2010

Просто добавьте значок в модель вместо строки:

import java.awt.*;
import javax.swing.*;

public class ComboBoxIcon extends JFrame
{
    JComboBox comboBox;

    public ComboBoxIcon()
    {
        Object[] items =
        {
            new ImageIcon("about16.gif"),
            new ImageIcon("add16.gif"),
            new ImageIcon("copy16.gif")
        };
        comboBox = new JComboBox( items );
        getContentPane().add( comboBox, BorderLayout.NORTH );
    }

    public static void main(String[] args)
    {
        JFrame frame = new ComboBoxIcon();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible( true );
    }
}
2 голосов
/ 18 октября 2010

Посмотрите на этот пример, который, кажется, делает то, что вы хотите.

http://www.java2s.com/Code/Java/Swing-JFC/CustomComboBoxwithImage.htm

То, что вы ищете, это пользовательский рендер для JComboBox. Рендерер - это просто JComponent, поэтому, если вы можете создать компонент (JPanel с необходимыми элементами, содержащимися в нем), вы можете создать практически любой результат, о котором вы только можете подумать). Вы даже можете переопределить метод рисования, если вам недостаточно использовать стандартные JComponents.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...