Toon posts:

[JAVA] waardes doorgeven aan paint methode

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleempje
ergens in mijn programma komen er 4 waardes in een array binnen

public void millioutput(float[] cmykresult){

cyaan = cmykresult[0];
magenta = cmykresult[1];
yellow = cmykresult[2];
black = cmykresult[3];
}


Deze moet ie met behulp van de paint methode dan op het scherm laten zien

public void paint(Graphics g) {
g.drawString("Cyaan " +cyaan+" mL", 25, 75);

----------------


bovenaan heb ik natuurlijk nog cyaan public gemaakt
maar op deze manier werkt het niet (waardes zijn dan gewoon nul)
Dus hoe kan ik deze array meegeven aan de paint methode zegmaar....

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

tip: member variable.

nu heb je genoeg info om dit probleem op te lossen.

[edit]
ik kijk nog even beter naar je code en ik zie dat ik iets te voorbarig was. Je stelt bij millioutput de waardes in (geef ff betere naam aan die methode). Weet je wel zeker dat in die array geen null waardes zitten? (nullcheck doen)

[ Voor 62% gewijzigd door Alarmnummer op 21-01-2003 22:11 ]


Verwijderd

Topicstarter
Dr zit daar geen null waardes in, dat heb ik al gecheckt

als ik bij

public void millioutput(float[] cmykresult){

cyaan = cmykresult[0];
magenta = cmykresult[1];
yellow = cmykresult[2];
black = cmykresult[3];
}

een System.out.println(black; bijvoorbeeld doe,
dan geeft ie de waarde juist aan, het heeft dus echt met het doorgeven te maken lijkt mij

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

En weet je zeker dat je paint methode van dezelfde member gebruikt maakt als waar in je millioutput aan toegekend wordt?

Verwijderd

Topicstarter
eehm....sorry ik weet niet helemaal precies wat je bedoeld,
zou je het op een andere manier kunnen uitleggen?

[ Voor 87% gewijzigd door Verwijderd op 21-01-2003 22:31 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ik neem aan dat je dit doet in een Applet oid. Iig je paint( Graphics g ) wordt waarschijnlijk eerder aangeroepen dan je millioutput( ) (wat een gare naam btw) en geeft gewoon de default waardes van je float weer.
Als je in een Applet zit, roep dan die millioutput( ) in init() aan

Verwijderd

Topicstarter
Het is een applicatie, dus helaas geen init daarin

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Een member is een variable die bij een class hoor, vb:

class Blaat{
private int getal;
}

getal is een member van een instantie van Blaat.

Ik vraag dus of de members waar jij in milliouput een toekenning aan doet, dezelfde member zijn als jij in paint gebruikt.

Verwijderd

Topicstarter
Ja in millioutput
ik heb hem nu cmykoutput genoemd,

wordt de waarde in cmykresult[0] in cyaan gestopt
deze wil ik dan laten zien in de paintmethode

Ik weet wel hoe je waardes moet doorgeven, maar bij die paint methode zie ik het echt niet, daar kan ik niet gewoon typen: void paint(Graphics g, float cyaan.....

[ Voor 36% gewijzigd door Verwijderd op 21-01-2003 22:54 ]


Verwijderd

probeer anders eens repaint() na je code te zetten in je cmykoutput methode.
Als dat wel werkt, dan roep je je cmykoutput methode te laat aan.

Verwijderd

Topicstarter
Hellas Grote Vos, dat werkt ook niet:

dit is trouwens mijn hele class:

public class MilliLiters extends Panel {

public float cyaan, magenta, yellow, black;


public void cmykoutput(float[] cmykresult){

cyaan = cmykresult[0];
magenta = cmykresult[1];
yellow = cmykresult[2];
black = cmykresult[3];

}

public void paint(Graphics g) {
g.drawString("Cyaan " +cyaan+" mL", 25, 75);
g.drawString("Magenta " +magenta+" mL", 25, 105);
g.drawString("Geel " +yellow+" mL", 25, 135);
g.drawString("Zwart " +black+" mL", 25, 165);
}

}

  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
Je moet je bedenken dat je eerst de methode cmykoutput() aanspreekt en daarna pas de paint methode. Als ik jou was zou ik die 1e methode gewoon weghalen en alles in paint() afhandelen :)

Leeg


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
reskobon schreef op 22 januari 2003 @ 17:15:
Je moet je bedenken dat je eerst de methode cmykoutput() aanspreekt en daarna pas de paint methode. Als ik jou was zou ik die 1e methode gewoon weghalen en alles in paint() afhandelen :)

The Horror! Logica in paint :/. Weet je wel hoe vaak die logica dan langs moet komen? Weet je dan hoe je die float[] in paint gaat krijgen?

Gebruik eens een constructor. Waardes ermee initaliseren is ie voor bedoeld :)

Java:
1
2
3
4
5
6
public class MilliLiters extends Panel {

   public MilliLiters( float[] colors ) {
      
      cmykoutput( colors );
   }


Maar waarom in je membervariabelen public maken? Waarvoor is dat nodig? Wat wil je ermee bereiken?
Pagina: 1