J'ai la classe DrawOutput, qui étend JComponent. this.getGraphics que je passe à peindre est nul ici. Comment puis-je obtenir des Grapics de cette classe?exception de pointeur null dans les graphiques du composant
public class DrawOutput extends JComponent {
Voici le constructeur de classe.
DrawOutput (MinDistances requiredMinDistances, MainMatrix matrix){
super();
getRequiredMedoidsArray(requiredMinDistances);
paint(this.getGraphics(), requiredMinDistances, matrix);
}
contenu
est nul ici
public void paint(Graphics content, MinDistances requiredMinDistances, MainMatrix matrix) {
...
}
private float[] setColor (int colorID){
float[]hsbValues=new float[3];
if(colorID == 1){
hsbValues = Color.RGBtoHSB(0,255,255,hsbValues);
}
else if(colorID == 2){
hsbValues = Color.RGBtoHSB(255,0,255,hsbValues);
}
else if(colorID == 3){
hsbValues = Color.RGBtoHSB(0,255,0,hsbValues);
}
else if(colorID == 4){
hsbValues = Color.RGBtoHSB(255,255,0,hsbValues);
}
else if(colorID == 5){
hsbValues = Color.RGBtoHSB(255,0,0,hsbValues);
}
else if(colorID == 6){
hsbValues = Color.RGBtoHSB(255,255,255,hsbValues);
}
else{
hsbValues = Color.RGBtoHSB(0, 0, 0,hsbValues);
}
return hsbValues;
}
private void getRequiredMedoidsArray(MinDistances distancesCell){
...
}
}
Toutes les suggestions?
peut-être vous devriez remplacer 'paint()' et attendre jusqu'à ce qu'il soit appelé automatiquement? – micha
"Les programmes Swing doivent surcharger' paintComponent() 'au lieu de surcharger' paint() '." - [* Peinture dans AWT et Swing: The Paint Methods *] (http://www.oracle.com/technetwork/java/ paint-140037.html # callbacks). – trashgod