2017-08-20 9 views
0

J'ai ce programme et je veux ajouter une image de fond à mon comboBox. J'ai essayé beaucoup de méthodes et je ne peux pas le faire, alors quelqu'un peut-il m'aider?ajouter l'image de fond à JComboBox

class myClass 
{ 

    public static void main(String args[]) 
    { 
    JFrame myFrame = new JFrame(); 
    myFrame.setBounds(500,500,500,500); 
    myFrame.setLayout(null); 
    myFrame.setVisible(true); 

    JComboBox myComboBox = new JComboBox(); 
    myComboBox.setBounds(100,100,100,20); 
    myComboBox.add("item1"); 
    myComboBox.add("item2"); 
    myComboBox.setVisible(true); 

    Image comboBoxImage = new ImageIcon(
     myClass.class.getResources("/Image.png")).getImage(); 
    } 

} 

comment définir la comboBoxImage comme arrière-plan de la myComboBox combobox?

Répondre

0

Vous pouvez définir un moteur de rendu personnalisé pour vous zone de liste déroulante à l'aide:

myComboBox.setRenderer (...);

Une mise en œuvre possible du moteur de rendu pourrait être:

class BackgroundRenderer extends JLabel implements ListCellRenderer<String> { 
    private final Image image; 

    public BackgroundRenderer(Image image) { 
     this.image = image; 
    } 

    @Override 
    protected void paintComponent(Graphics g) { 
     g.drawImage(image, 0, 0, this); 

     super.paintComponent(g); 
    } 

    @Override 
    public Component getListCellRendererComponent(JList<? extends String> list, String value, int index, 
      boolean isSelected, boolean cellHasFocus) { 
     setText(value); 

     return this; 
    } 
} 
+0

vous êtes très bon! Je vous remercie – darkagandal