IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

probleme de conversion avec les generics


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut probleme de conversion avec les generics
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vector<String> font = new Vector<String>();
    font = value.elementAt(i);
    les lignes ci-dessus dans eclipse me donnent l' affichage

    Type safety: The expression of type Vector needs unchecked conversion to conform to Vector<String>

    j'ai essayé de faire un cast mais ca ne résout pas le problème.
    D'ailleurs quel est le problème?

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Quel est le type de value ???

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par yvonh
    D'ailleurs quel est le problème?
    Le problème est que tu essaie de mettre dans font une variable qui n'a pas l'air d'être de type Vector<String>.

    D'ailleurs, c'est assez bizarre ce que tu veut faire... Tu dis que font est un nouveau vector et après tu dis que c'est autre chose.

    Tu veut pas plutot mettre quelque chose dans ce Vector ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Vector<String> font = new Vector<String>();
    font = value.elementAt(i);

    je détaille :
    j'affiche dans une JList des Vector de Vector de String.

    value est un Vector de Vector. font est un String qui sera parsé en Integer.

    si ce n'est toujours pas précis je peux poster le code entier.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yvonh
    je détaille :
    j'affiche dans une JList des Vector, chaque Vector contient un autre Vector qui contient des String
    (c'est un Vector de Vector de String).
    Ton Vector principal est surement mal déclaré. Ce devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector<Vector<String>> value;
    Si ce n'est pas le cas le warning est "normal"...

    Citation Envoyé par yvonh
    Si c pas suffisant je peux poster le code.
    Oui ce serait mieux...

    a++

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Au passage : Pourquoi faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vector<String> font = new Vector<String>();
    font = value.elementAt(i);
    Il y a une instanciation inutile de Vector !

    C'est mieux de le faire directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector<String> font = value.elementAt(i);
    a++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public class MyCellRenderer2 extends JLabel implements ListCellRenderer2 {
     
    		public Component getListCellRendererComponent (
    			JList list, 
    			Object value, 			//value to display
    			int index,				//cell index
    			boolean isSelected, 	//is the cell selected
    			boolean cellHasFocus) //the list and the cell has focus
    			{  return this;  }
     
    	public Component getListCellRendererComponent (
    			JList list, 
    			Vector<Vector> value, 			//list to display
    			int index,				//cell index
    			boolean isSelected, 	//is the cell selected
    			boolean cellHasFocus) //the list and the cell has focus
    	{
    		//process the component content (a string)
    		String s = list.toString();
    		//set the text with setText inherited from JLabel
     
     
    		//sets the selected display
    		if (isSelected){
    			setBackground(Color.BLUE);
    			setForeground(list.getSelectionForeground());
    		} else {
    		//sets the non selected display
    			setBackground(list.getBackground());
    			setForeground(list.getForeground());
    		}
    		setEnabled(list.isEnabled());
     
    		/**
                     * display component with font size according to priority level
                     * conditional formatting:
                     * priority 1 : font size = 16
                     * priority 2 : font size = 12
                     * priority 3 : font size = 8
                     */
    		for (int i = 0; i < value.size(); i++){
    			Vector<String> font = new Vector<String>();
    			font = value.elementAt(i);
     
    			setFont(new Font("Arial Bold", Font.PLAIN, new Integer(font.elementAt(1))));
    		}
    		setOpaque(true);
    		return this; 
    	}
     
    }
    comme vous le voyez j'ai overridé la méthode de l'interface pour recevoir en argument un Vector au lieu d'un Object.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2006, 11h02
  2. Probleme de auto_ptr avec les map
    Par Luther dans le forum C++
    Réponses: 8
    Dernier message: 08/04/2005, 10h49
  3. Problème de taille avec les tables
    Par Angelico dans le forum Paradox
    Réponses: 2
    Dernier message: 27/12/2004, 18h38
  4. [Layer] Probleme de superposition avec les JMenuItem
    Par azdruyel dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 21/07/2004, 11h24
  5. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo