JAVA, using threads

Pagina: 1
Acties:
  • 72 views sinds 30-01-2008

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Hoi,

kan iemand mij misschien helpen met het volgende. ik wil in java een aantal dingen met threads doen (die tegelijk kunnen) maar daarvoor moet wel eerst iets anders gebeuren. Namelijk eerst de achtergrond tekenen en dan alle plaatjes ervoor. als ik gewoon threads gebruik (JBuilder3.5 of J++ 6.0) gaat ie die direct uitvoeren terwijl ze pas later moeten(dus eerste de plaatjes en dan de achtergrond eroverheen. ik wil ze wel graag in de zelfde javaFile houden.

hope for reply

Peter Zantinge

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Euh?

Dat is toch simpel? :
- Teken achtergrond en de plaatjes
- Start de threads...

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

Alarmnummer

-= Tja =-

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class BanaanOpEterThread extends Thread{
    private Banaan _banaan;
    public BanaanOpEterThread(Banaan banaan){
      _banaan = banaan;
    }

    public void run(){
     while(!_banaan.isOpgegeten()){
        _banaan.neemHap();
     }
    }
}

//de thread maken
BanaanOpEterThread b = new BanaanOpEterThread(new Banaan());
//de thread starten.
b.start();

ps: pas wel heel erg op met threads ivm concurrency control ed. Als je niet weet waar ik over praat, dan moet je er eigelijk niet mee beginnen.

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

Alarmnummer

-= Tja =-

Ik weet niet hoe het zit met AWT (doe ik niets mee) maar zorg er altijd voor dat als je iets op een Swing object gaat doen, dat je dit altijd doet vanuit de Swing thread. Hiervoor kan je gebruik maken van:
code:
1
2
3
4
5
6
7
SwingUtilities.invokeAndWait(new SetTextRunnable());

class SetTextRunnable implements Runnable {
   public void run() {
     label.setText("bladibladibanaan");
   }
}

Hierdoor ga je (tijdelijk) naar de swing thread toe om iets te veranderen.

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
kun je threads niet op een bepaald moment in de class laten beginnen is eigenlijk mijn vraag. ik wil eerst gewoon de achtergrond tekenen. daaroverheen (dus later tekenen, of iemand moet een andere oplossing weten) 6 plaatjes (tegelijk met threads) en dan nog op die 6 plaatjes (dus daar weer overheen en dus nog later) een stukje tekst (g.drawString) (wil geen labels gebruiken omdat ik dan weer van alles moet veranderen). Hoe doe ik dit of wil ik nu iets wat eigenlijk niet kan. (moeten van school wel threads in en moet eigenlijk morgen af dus heb nogal haast)

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Je kan ze toch gewoon later in je class starten?

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

Alarmnummer

-= Tja =-

threads en haast is hetzelfde als als.. water en dynamiet.. nouja.. je snapt me wel ;) Threads zijn geen dingen die je tussen neus en lippen doordoet en wat ik uit je verhaal opmaak is dat je nog niet veel ervaring hebt met java. Ik denk ook niet dat we je kunnen helpen. We kunnen je huiswerk wel maken, maar dat doen we niet omdat jij daar niets van leerd.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09-09 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

waarom wil je de plaatjes tegelijk tekenen en doe je het niet gewoon omstebeurt?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Op woensdag 03 april 2002 19:41 schreef Alarmnummer het volgende:
threads en haast is hetzelfde als als.. water en dynamiet.. nouja.. je snapt me wel ;) Threads zijn geen dingen die je tussen neus en lippen doordoet en wat ik uit je verhaal opmaak is dat je nog niet veel ervaring hebt met java. Ik denk ook niet dat we je kunnen helpen. We kunnen je huiswerk wel maken, maar dat doen we niet omdat jij daar niets van leerd.
wat ik bedoelde met haast was dat het programma morgen af moet zijn

ik heb the thread zelf wel al alleen wil ie niet starten wanneer ik dat wil. verder doet ie het wel goed
hij moet alleen eerst de achtergrond laten tekenen. dan de plaatjes met de threads en dan weer met threads de tekst erop zetten (g.drawString)

dus op die manier. HOE DOE IK DAT. Kan me niet schelen als ik er niks van leer (kan er vast wel wat van opsteken als ik maar weet wanneer ik ze moet aanroepen als ze het op een later tijdstip moeten doen dan direct aan het begin van de class.

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Op woensdag 03 april 2002 19:48 schreef OiSyN het volgende:
waarom wil je de plaatjes tegelijk tekenen en doe je het niet gewoon omstebeurt?
dat bevalt me beter en de leraar wil graag dat ik dat met threads ga doen.

dus op die manier

  • paul2005
  • Registratie: Maart 2002
  • Laatst online: 08-09-2025
Dexter, je moet niet zo liegen. Ik weet toevallig dat het morgen helemaal niet af hoeft te zijn maar pas volgende maand ofzo. Dus heren van de antwoorden, neem uw tijd!

Paul

Verwijderd

Start de plaatjesTekenThread in de achtergrondTekenThread zodra deze bijna is afgelopen...

Er is volgens mij ook wel een manier om vanuit het hoofdprogramma te controleren wanneer een thread is afgelopen.

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

Alarmnummer

-= Tja =-

Op woensdag 03 april 2002 19:51 schreef dexter07051982 het volgende:

[..]

wat ik bedoelde met haast was dat het programma morgen af moet zijn
dat versta ik meestal ook onder haast ;)
ik heb the thread zelf wel al alleen wil ie niet starten wanneer ik dat wil.
Als je nog even goed kijkt naar mijn 1e voorbeeld (de BanaanOpEterThread) dan zie je hoe je een thread kan maken, en op een willekeurig tijdstip kan starten.
verder doet ie het wel goed
hij moet alleen eerst de achtergrond laten tekenen. dan de plaatjes met de threads en dan weer met threads de tekst erop zetten (g.drawString)
hmmm.. ik durf te wedden dat het niet de bedoeling van je leraar is om je programma vol te behangen met threads. En als dat wel zo is dan wil ik hem wel een keer les geven in hoe hij les moet geven, want dit klinkt naar iemand die er zelf niets van begrijpt. Threads zijn hele gecompliceerde dingen en die horen niet gedaan te worden door beginnende programmeurs.
dus op die manier. HOE DOE IK DAT. Kan me niet schelen als ik er niks van leer (kan er vast wel wat van opsteken als ik maar weet wanneer ik ze moet aanroepen als ze het op een later tijdstip moeten doen dan direct aan het begin van de class.
Ik snap nog steeds niet wat je bedoelt met 'begin van een class'. Je bedoelt misschein begin van een methode???

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

http://gathering.tweakers.net/forum/list_messages/392390/#4
Afbeeldingslocatie: http://gathering.tweakers.net/global/smileys/confused.gif En huiswerkvragen dan?</a>

Het is toegestaan om huiswerk te plaatsen.
Mits het aan een aantal eisen voldoet.
  • <li>Je geeft duidelijk een beschrijving van je opdracht en je probleem.<li>Je geeft ook duidelijk aan wat je al geprobeerd hebt.<li>Je moet niet vergeten, dat je het huiswerk hoort te kunnen maken, met alleen je studiemateriaal en de eventuele hulp van docenten/assistenten en medestudenten.<li>Zodra de vraag richting "maken jullie het dan even" gaat, dan gaat je topic zonder meer op slot.<li>Verder gelden natuurlijk ook hiervoor de standaard voorwaarden uit de algemene en subforum faq.
Mocht je na dit alles er nog niet uitkomen en zeker weten dat men je hier kan helpen, dan kan je er een topic voor plaatsen.
Wees dan wel eerlijk en zet er gewoon bij dat het huiswerk is, dat maakt het een stuk makkelijker voor de mensen die je helpen om je "niveau in te schatten".

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.