Personnaliser une comboBox avec un JPanel

lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -  
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, à tous

je cherche vainement à créer une comboBox avec un JPanel contenant une forme géométrique (rond, carre...)


Je sais que pour ce faire, il faut utiliser un renderer.
J'ai consulté plusieurs exemple sur le net qui utilisent des images ou des couleurs, mais je n'en est trouver aucun qui utilise des JPanel.

Voici le code pour les forme je n'en met qu'un car je ne pense pas qu'il doit utile de tous les mettre:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class Carre extends JPanel
{
    public void paintComponant(Graphics g)
    {
    	g.setColor(Color.GREEN);
    	g.fillRect(150, 150, 150, 150);
    }
}


Voila si quelqu'un sait comment faire...
Merci.

Configuration: Linux / Firefox 74.0

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Pour que ça fonctionne, il faut surcharger la méthode paintComponent(Graphics g), pas ajouter une nouvelle méthode paintComponant(Graphics g), qui ne sera jamais appelé...

Pour t'éviter ce genre d'étourderie, je t'invites à ajouter l'annotation @Override (optionnelle) sur les méthodes que tu veux surcharger, à la compilation Java vérifiera si cela correspond bien à une méthode surchargée ou s'il y a eu, comme ici, une erreur dans le nom...
0
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   2
 
Ok merci pour le conseil c'est vrai j'ai fais une faute de frappe, et a l'avenir j'ajouterais l'annotation @Override.

Cependant mon problème est que je sais pas comment faire pour que mes figures soient dans mon comboBox, j'ai essayé de m'inspirer d'exemple que j'ai trouver sur le site de oracle et d’implémenté ListCellRenderer mais rien à faire je n'y arrive pas.

étant débutant en java, je ne comprend pas comment s'utilise cette interface.
0