Как у випадающый списак закынуть картинку и натпись - Java

Узнай цену своей работы

Формулировка задачи:

как у випадающый списак (JComboBox) закынуть картинку и натпись? вид неважно , главно чтоби закинуть. Я панемаю что, можна, закинуть панель з лейболом и иконкой. но наверно есть и другой способ?P.S извините за ошипки плохо знаю руский

Решение задачи: «Как у випадающый списак закынуть картинку и натпись»

textual
Листинг программы
  1. import java.awt.Component;
  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import javax.swing.Icon;
  5. import javax.swing.ImageIcon;
  6. import javax.swing.JComboBox;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JList;
  10. import javax.swing.ListCellRenderer;
  11. import javax.swing.SwingUtilities;
  12. /**
  13.  *
  14.  * @author ramil
  15.  */
  16. public class JImageComboBoxFrame extends JFrame {
  17.     public static void main(String[] args) {
  18.         SwingUtilities.invokeLater(new Runnable() {
  19.             public void run() {
  20.                 new JImageComboBoxFrame().setVisible(true);
  21.             }
  22.         });
  23.     }
  24.     public JImageComboBoxFrame() {
  25.         super("JComboBox with images");
  26.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.         String imagesPath = "/usr/share/icons/gnome/16x16/devices";
  28.         ArrayList<ImageHolder> list = new ArrayList<ImageHolder>();
  29.         for (File file : new File(imagesPath).listFiles()) {
  30.             list.add(new ImageHolder(
  31.                     file.getName(),
  32.                     new ImageIcon(file.getAbsolutePath())));
  33.         }
  34.         JComboBox comboBox = new JComboBox(list.toArray());
  35.         comboBox.setRenderer(new ImageHolderRenderer());
  36.        
  37.         add(comboBox);
  38.         pack();
  39.         setLocationRelativeTo(null);
  40.     }
  41.     public static class ImageHolder {
  42.         public ImageHolder(String description, Icon image) {
  43.             this.description = description;
  44.             this.image = image;
  45.         }
  46.         public final String description;
  47.         public final Icon image;
  48.     }
  49.     public static class ImageHolderRenderer
  50.             extends JLabel
  51.             implements ListCellRenderer
  52.     {
  53.         public ImageHolderRenderer() {
  54.             setOpaque(true); // что-бы можно было отображать выделеные элементы
  55.         }
  56.         public Component getListCellRendererComponent(
  57.                 JList list,
  58.                 Object value,
  59.                 int index,
  60.                 boolean isSelected,
  61.                 boolean cellHasFocus)
  62.         {
  63.             ImageHolder imageHolder = (ImageHolder) value;
  64.             setIcon(imageHolder.image);
  65.             setText(imageHolder.description);
  66.             if (isSelected) {
  67.                 setBackground(list.getSelectionBackground());
  68.                 setForeground(list.getSelectionForeground());
  69.             } else {
  70.                 setBackground(list.getBackground());
  71.                 setForeground(list.getForeground());
  72.             }
  73.             return this;
  74.         }
  75.     }
  76. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут