Toon posts:

[JAVA] live-grafiek

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil graag een hartslag grafiek maken in java.
De grafiek moet reageren op een knop.
Door die knop kunnen er pulsjes worden gegeven waarop de grafiek dus direct reageert.
We hebben een lijn die horizontaal over het scherm loop en die af en toe als er op de knop wordt gedrukt een puls laat zien.

ik heb het geprobeert met een while statement maar dat zorgt ervoor dat de knop niet werkt en de lijn de hele tijd blijft doorlopen.

_/-\o_ :)

Java:
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
    
public void paint (Graphics g)
    {
        int x=0;
        

        while(x!=700)
        {
        int c=i;
        if(c==1)
        {
            int y=200;
            g.setColor(Color.green);
            g.drawLine(x+10,y,x+50,y-150);
            g.drawLine(x+50,y-150,x+90,y+150);
            g.drawLine(x+90,y+150,x+130,y);
            x +=120;
        }
        
        else if(c==0) 
            {
            int y=200;
            g.setColor(Color.green);
            g.drawLine(x-20,y,x,y);
            g.setColor(Color.black);
            g.drawLine(x-120,y,x-100,y);
            slaap(10);
            x+=10;
            repaint();


tijdens het uitvoeren van onze totale code krijgen wij geen foutmeldingen

kohza

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

misschien wordt x ook wel niet 700 (grote kans zelfs)

sjek je lus-voorwaarde

Multimonitor is relax :P


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

De functie slaap, die je in je vorige topic overigens wel liet zien, lijkt me vrij essentiëel voor de oplossing van je probleem. Zou je die hier ook weer even aan kunnen halen? Ik vermoed dat Thread.sleep locking is, en nooit fout zal gaan, waardoor je try/catch-blok geen effect zal hebben, maar ik ben geen Java-programmeur, dus een definitief antwoord laat ik graag aan Alarmnummer en diens zielsverwanten over. :P

Edit: je hoeft overigens ook niet je naam onder elke post neer te zetten. Je naam staat ook al naast je post, beetje zinloos om hem er ook onder te zetten. Scheelt ook weer wat ruimte. ;)

[ Voor 19% gewijzigd door NMe op 10-05-2005 13:38 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
ik heb de code iets verandert na de reactie van MeIsTwisted ik heb de voorwaarde van de while statement verandert naar x<=700 maar dat zorgt niet voor enige verandering van de uitwerking van het programma het probleem blijft zich voordoen.
misschien heeft iemand een andere oplossing in de plaats van een while lus????

Kohza

p.s.
Java:
1
2
3
4
5
6
   
 public void slaap(int millisec)
    {
        try{ Thread.sleep(millisec);}
        catch(InterruptedException e){}
    }

dit is mijn slaap methode

[ Voor 23% gewijzigd door Verwijderd op 10-05-2005 13:39 ]


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Ik neem aan dat als de thread slaapt die knop bar weinig doet, en als hij niet slaapt dan is ie aan het tekenen.
Dus, ik denk dat je een tweede thread moet gaan gebruiken om je hart ritme te tekenen.

Verwijderd

Is het niet beter om die paint methode te gebruiken voor de huidige situatie

code:
1
class HeartbeatDisplay extends JPanel ofzo.

Hierin hou je dan een aantal properties bij die de bepaalde hartslag bepalen bvb:
code:
1
2
private Color lineColor;
private int heartbeats;


In je "controller" klasse ga je dan een display aanmaken en in je frame plaatsen. In je controller klasse ga je af en toe eigenschappen veranderen in de HeartBeatDisplay klasse. Daarna roep je een repaint op.

De lus zou ik dus NOOIT in de paint methode zetten!

Eigenljk moet je HeartBeat en HeartBeatDisplay ook nog opsplitsen maar ja :P

Verwijderd

Sleep is vrijwel altijd een slecht idee.. Gebruik een timer:
http://java.sun.com/products/jfc/tsc/articles/timer/
Pagina: 1