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

  FORUM HardWare.fr
  Programmation
  Java

  [swing] renderer: changer le format selon la valeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[swing] renderer: changer le format selon la valeur

n°776504
chaos0007
Posté le 24-06-2004 à 17:38:16  profilanswer
 

bonjour j'aimerai changer le format de cellules dans un tablo selon la valeur q'elles ont. J'ai actuellement un Renderer qui herite du DefaultTableCellRenderer et je px changer le format d'une cellule en fonction de sa ligne et de sa colonne. j'aurais voulu savoir si c'était possible de changer selon la valeur qu'elles ont. il y a un champ value dc j'ai fait un  
if (value.equals("toto" )) cell.setBackground(Color.gray) ;
 
et la, il y a des erreurs a l'affichage.
pouvez vous m'aider ?
merci d'avance

mood
Publicité
Posté le 24-06-2004 à 17:38:16  profilanswer
 

n°777764
veryfree
Posté le 25-06-2004 à 12:41:24  profilanswer
 

c'est quoi les erreurs?
post un bout de code aussi ;)

n°778452
chaos0007
Posté le 25-06-2004 à 19:07:26  profilanswer
 

l'erreur c'est donc :  
java.lang.NullPointerException
 at RendererJT_PhasesFinales.getTableCellRendererComponent(RendererJT_PhasesFinales.java:34)
 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.paintChildren(Unknown Source)
 at javax.swing.JComponent.paint(Unknown Source)
 at javax.swing.JLayeredPane.paint(Unknown Source)
 at javax.swing.JComponent.paintChildren(Unknown Source)
 at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
 at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
 at javax.swing.JComponent.paint(Unknown Source)
 at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
 at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
 at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
 at java.awt.Container.paint(Unknown Source)
 at sun.awt.RepaintArea.paint(Unknown Source)
 at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
 at java.awt.Component.dispatchEventImpl(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Window.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
 
 
 
le code c'est :
 
 
 
import javax.swing.table.*;  
import java.awt.*;
import javax.swing.* ;
import javax.swing.border.*;
/*
 * Créé le 24 juin 2004
 *
 */
 
/**
 * @author guillaume
 *
 */
public class RendererJT_PhasesFinales extends DefaultTableCellRenderer {
 
 public Component getTableCellRendererComponent( JTable table,Object value,boolean isSelected,
             boolean hasFocus,int row,int column){
 
  Component cell = super.getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);
  Border raisedbevel  = BorderFactory.createRaisedBevelBorder();
 
  if ( ((column==0)&&(row%2==0))  ) {
   cell.setBackground(Color.red);
   cell.setForeground(Color.white);
   
   //setBorder(raisedbevel) ;
  // setBorder(BorderFactory.createLoweredBevelBorder()) ;
  }
  else if ((column>0)&&(row>0)&&( (Math.power(2,column)-1) ==  row % (Math.power(2,column+1)) ) ) {
   cell.setBackground(Color.red);
   cell.setForeground(Color.white);
   
  }
  else if (table.getModel().getValueAt(row,column).equals("Match" )) {
   cell.setBackground(Color.green) ;
   
  }
  else {
     cell.setBackground(Color.black);
     cell.setForeground(Color.black);
   }
   
 
   
  setHorizontalAlignment( CENTER );
  return cell ;
  }
 
}
 
 
 
 

n°778453
chaos0007
Posté le 25-06-2004 à 19:08:09  profilanswer
 

l'erreur vient du else if (table.getModel().getValueAt(row,column).equals("Match" ))

n°778535
veryfree
Posté le 25-06-2004 à 20:39:42  profilanswer
 

ben java.lang.NullPointerException  c'est qd t'utilise une variable null donc il te reste plus qu' a debuggé.
 
c'et surement le : table.getModel().getValueAt(row,column) << qui renvois null
 
donc verification avant le equals()

n°778580
Taz
bisounours-codeur
Posté le 25-06-2004 à 21:21:31  profilanswer
 

"toto".equals(value)
 
est bien plus sur

n°778917
chaos0007
Posté le 26-06-2004 à 04:18:35  profilanswer
 

merci taz, maintenant ca fonctionne impeccable
c qd meme bizarre ca... est ce le pb du castage qui se passe pas bien dans  l'autre sens ?

n°778928
Taz
bisounours-codeur
Posté le 26-06-2004 à 09:16:35  profilanswer
 

non, c'est que si value est null,  equals retourne false, donc on est protégé. en règle générale, écrit toujours "chaine littérale".méthode(autre_chaine)

n°778935
chaos0007
Posté le 26-06-2004 à 09:58:46  profilanswer
 

oki maintenant je ferais attention...

n°778938
chaos0007
Posté le 26-06-2004 à 10:28:56  profilanswer
 

sinon est ce que vous savez comment on fait pour qu'il n'y ait plus les traits en gris autour des cellules... j'ai essayé de changer les border mais les borders se creent à l'nteirieur des cellules delimitees par les traits en gris dc on les voit encore...
merci d'avance...


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

  [swing] renderer: changer le format selon la valeur

 

Sujets relatifs
HTML et php passage de valeurComment Faire pour lire un fichier en format excel
[swing] modifier un jpanel apres un evenement...[JAVA - SWING] JButton dans une JTable
Renvoyer une certaine valeur apres click sur <input "valider">[swing] pb pour fermer une fenetre
Changer de texte quand on pointe sur une imagepb pour récupérer une valeur
Quel format flash le plus compatible choisir ?Changer Papier Peint -Windows-VC++6
Plus de sujets relatifs à : [swing] renderer: changer le format selon la valeur


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