Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1207 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  problème avec mon renderer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème avec mon renderer

n°2034087
miss_dream​s
Posté le 05-11-2010 à 00:35:15  profilanswer
 

Bonjour tout le monde
 
Voila mon soucis ... Je dois développer une interface d'affichage d'un tableau et j'aimerais faire un renderer qui change la couleur de mes cases selon ce qu'il y a dedans mais voila l'erreur qui se répète tout le temps et je ne comprend pas:
 
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to Interface.Reservation
 at Interface.CelluleReservationRenderer.getTableCellRendererComponent(CelluleReservationRenderer.java:36)
 at javax.swing.JTable.prepareRenderer(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
 at javax.swing.plaf.ComponentUI.update(Unknown Source)
 at javax.swing.JComponent.paintComponent(Unknown Source)
 at javax.swing.JComponent.paint(Unknown Source)
 at javax.swing.JComponent.paintToOffscreen(Unknown Source)
 at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
 at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
 at javax.swing.RepaintManager.paint(Unknown Source)
 at javax.swing.JComponent._paintImmediately(Unknown Source)
 at javax.swing.JComponent.paintImmediately(Unknown Source)
 at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
 at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
 at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
 at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
 at java.awt.event.InvocationEvent.dispatch(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)
 
 
 
voila mon code:

Code :
  1. package Interface;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.util.Iterator;
  5. import java.util.TreeSet;
  6. import javax.swing.JComponent;
  7. import javax.swing.JLabel;
  8. import javax.swing.JTable;
  9. import javax.swing.table.TableCellRenderer;
  10. public class CelluleReservationRenderer extends JLabel implements TableCellRenderer
  11. {
  12. Reservation res;
  13. public CelluleReservationRenderer()
  14. {
  15.  super();
  16.  setOpaque(true);
  17.  setHorizontalAlignment(JLabel.CENTER);
  18. }
  19. public Component getTableCellRendererComponent(JTable parTable, Object parValeur, boolean estSelectionne, boolean aLeFocus, int Ligne, int Colonne)
  20. {
  21.  if(parValeur==null)
  22.  {
  23.   this.setBackground(Color.blue);
  24.   // on remplit les cases vides et leur tooltiptext avec des espaces pour que de fausses informations  
  25.   //ne puissent pas être inserees
  26.    this.setText(" " );
  27.    this.setToolTipText(null);
  28.  }
  29.  else
  30.  {
  31.   res= (Reservation) parValeur;
  32.   this.setText(Constantes.nomChirurgiens[res.getIndexNomChirurgiens()]);
  33.   this.setForeground(Color.red);
  34.   this.setToolTipText(res.toString());
  35.  }
  36.  return this;
  37. }
  38. }


 
je vous remercie d'avance pour votre aide.

mood
Publicité
Posté le 05-11-2010 à 00:35:15  profilanswer
 

n°2043263
Ju -
Posté le 20-12-2010 à 12:23:52  profilanswer
 

Vieux motard que jamais, dit-on?
Bonjour, je viens de lire ton message et me permets donc répondre car la solution me parait assez simple, et je ne vois aucune réponse à ta question...
 
Le problème vient du type de la variable parValeur que reçoit ta méthode getTableCellRendererComponent, qui doit être un string au runtime, et que tu essaies de caster en type Reservation ligne 36...
 
Vérifie donc l'appel de cette méthode, et afin de blinder ton code, il faudrait rajouter ici:
 

Code :
  1. try {
  2.    res= (Reservation) parValeur;
  3. } catch(ClassCastException e) {
  4.    System.out.println("Attention: type incorrect pour parValeur" );
  5.    ...
  6. }


 
Bon courage.
 

miss_dreams a écrit :

Bonjour tout le monde
 
Voila mon soucis ... Je dois développer une interface d'affichage d'un tableau et j'aimerais faire un renderer qui change la couleur de mes cases selon ce qu'il y a dedans mais voila l'erreur qui se répète tout le temps et je ne comprend pas:
 
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to Interface.Reservation
 at Interface.CelluleReservationRenderer.getTableCellRendererComponent(CelluleReservationRenderer.java:36)
 at javax.swing.JTable.prepareRenderer(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
 at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
 at javax.swing.plaf.ComponentUI.update(Unknown Source)
 at javax.swing.JComponent.paintComponent(Unknown Source)
 at javax.swing.JComponent.paint(Unknown Source)
 at javax.swing.JComponent.paintToOffscreen(Unknown Source)
 at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
 at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
 at javax.swing.RepaintManager.paint(Unknown Source)
 at javax.swing.JComponent._paintImmediately(Unknown Source)
 at javax.swing.JComponent.paintImmediately(Unknown Source)
 at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
 at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
 at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
 at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
 at java.awt.event.InvocationEvent.dispatch(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)
 
 
 
voila mon code:

Code :
  1. package Interface;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.util.Iterator;
  5. import java.util.TreeSet;
  6. import javax.swing.JComponent;
  7. import javax.swing.JLabel;
  8. import javax.swing.JTable;
  9. import javax.swing.table.TableCellRenderer;
  10. public class CelluleReservationRenderer extends JLabel implements TableCellRenderer
  11. {
  12. Reservation res;
  13. public CelluleReservationRenderer()
  14. {
  15.  super();
  16.  setOpaque(true);
  17.  setHorizontalAlignment(JLabel.CENTER);
  18. }
  19. public Component getTableCellRendererComponent(JTable parTable, Object parValeur, boolean estSelectionne, boolean aLeFocus, int Ligne, int Colonne)
  20. {
  21.  if(parValeur==null)
  22.  {
  23.   this.setBackground(Color.blue);
  24.   // on remplit les cases vides et leur tooltiptext avec des espaces pour que de fausses informations  
  25.   //ne puissent pas être inserees
  26.    this.setText(" " );
  27.    this.setToolTipText(null);
  28.  }
  29.  else
  30.  {
  31.   res= (Reservation) parValeur;
  32.   this.setText(Constantes.nomChirurgiens[res.getIndexNomChirurgiens()]);
  33.   this.setForeground(Color.red);
  34.   this.setToolTipText(res.toString());
  35.  }
  36.  return this;
  37. }
  38. }


 
je vous remercie d'avance pour votre aide.



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  problème avec mon renderer

 

Sujets relatifs
PHP et AJAX Probleme pour renvoyer une valeurProblème avec macro excel
Problème de bdd simple mais pas évident à trouverProblème exécution d'une servlet
[VBA] Problème lors de l'ouverture des fichiersProbleme DIV sur IE
Problème POO et execution de fonctionProblème de requête
Probleme sur sedjQuery : problème .append() et $.each()
Plus de sujets relatifs à : problème avec mon renderer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR