Toon posts:

Java programmeervraag

Pagina: 1
Acties:
  • 428 views

Onderwerpen


  • Macromark
  • Registratie: januari 2010
  • Laatst online: 24-01 14:36
Hey beste tweakers!!

Ik heb een probleempje met java. De opdracht lijkt makkelijk maar is moeilijker dan het lijkt! Ik studeer nu informatica aan HS Leiden. Ik moet ook java doen, ik heb er alleen niet echt aanleg voor en heb er echt veel moeite mee! Dus als je daar rekening mee wilt houden bij je uitleg zou ik dat alvast erg waarderen;)

Oke, de opdracht! Ik moet in Java een bal tekenen die uit zichzelf heen en weer gaat, en als die tegen de rand van het scherm gaat, moet ie weer de andere kant op. Ook moet de bal omhoog kunnen en je moet een knop hebben die hem van richting laat veranderen. Nu heb ik dat allemaal al werkend.

Maar er is nog een opdracht waar ik vastloop! Je moet namelijk de bal ook nog sneller en langzamer laten gaan. Dat klinkt in het begin erg makkelijk maar ik kom er gewoon niet uit:S Ik heb hieronder mijn code staan (bestaat uit 3 klassen) :
ps. Ik weet niet zeker hoe ik de code moet presenteren... als er een speciale manier is moet je het maar zeggen! ;)

package h4opdr7;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class AutoBal extends JPanel implements ActionListener
{
private int horizontalePlaats = 250;
private int verticalePlaats = 150;
private int richtingEnSnelheid = +1;

private final int WACHTTIJD = 1;

public AutoBal()
{
javax.swing.Timer autoKlik = new javax.swing.Timer(WACHTTIJD, this);
autoKlik.start();
}

public int getHorPlaats()
{
return horizontalePlaats;
}

public int getVerPlaats()
{
return verticalePlaats;
}

public int getRichtingEnSnelheid()
{
return richtingEnSnelheid;
}

public void setHorPlaats(int nieuweHorPlaats)
{
horizontalePlaats = nieuweHorPlaats;
}

public void setVerPlaats(int nieuweVerPlaats)
{
verticalePlaats = nieuweVerPlaats;
}

public void setRichtingEnSnelheid(int nieuweRichtingEnSnelheid)
{
richtingEnSnelheid = nieuweRichtingEnSnelheid;
}

public void actionPerformed(ActionEvent e)
{
setHorPlaats( getHorPlaats() + richtingEnSnelheid );
repaint();

if ( horizontalePlaats > 580 )
{
setRichtingEnSnelheid( - getRichtingEnSnelheid() );
}
if ( horizontalePlaats < 12 )
{
setRichtingEnSnelheid( - getRichtingEnSnelheid() );
}

if ( richtingEnSnelheid < 0 )
{
richtingEnSnelheid = - 1;
}
if ( richtingEnSnelheid > 1 )
{
richtingEnSnelheid = + 1;
}
}
public void paintComponent(Graphics g)
{
super.paintComponent( g );
final int BALDIAMETER = 100;
g.setColor(Color.ORANGE);
g.fillOval(horizontalePlaats, verticalePlaats, BALDIAMETER, BALDIAMETER);
g.setColor(Color.BLACK);
g.drawOval(horizontalePlaats, verticalePlaats, BALDIAMETER, BALDIAMETER);
g.drawOval(horizontalePlaats + BALDIAMETER / 4 , verticalePlaats, BALDIAMETER / 2, BALDIAMETER);
}
}


package h4opdr7;

import java.awt.event.*;
import javax.swing.*;

public class AutoBalBediening extends JPanel implements ActionListener
{
private JButton wisselRichting;
private JButton omhoog, omlaag;
private JButton Sneller, Langzamer;

AutoBal bal;

public AutoBalBediening(AutoBal bal)
{
this.bal = bal;

wisselRichting = new JButton("Wissel van richting");
wisselRichting.addActionListener(this);
add(wisselRichting);

omhoog = new JButton("Omhoog");
omhoog.addActionListener(this);
add(omhoog);

omlaag = new JButton("Omlaag");
omlaag.addActionListener(this);
add(omlaag);

Sneller = new JButton("Sneller");
Sneller.addActionListener(this);
add(Sneller);

Langzamer = new JButton("Langzamer");
Langzamer.addActionListener(this);
add(Langzamer);
}

public void actionPerformed(ActionEvent e)
{
if (e.getSource() == wisselRichting)
{
bal.setRichtingEnSnelheid(- bal.getRichtingEnSnelheid());
}
if (bal.getRichtingEnSnelheid() > 0)
{
if (e.getSource() == omlaag)
{
bal.setVerPlaats(bal.getVerPlaats() + bal.getRichtingEnSnelheid());
}
if (e.getSource() == omhoog)
{
bal.setVerPlaats(bal.getVerPlaats() - bal.getRichtingEnSnelheid());
}
}
else
{
if (e.getSource() == omlaag)
{
bal.setVerPlaats(bal.getVerPlaats() - bal.getRichtingEnSnelheid());
}
if (e.getSource() == omhoog)
{
bal.setVerPlaats(bal.getVerPlaats() + bal.getRichtingEnSnelheid());
}
}
if (e.getSource() == Sneller)
{
bal.setRichtingEnSnelheid(bal.getRichtingEnSnelheid() + 1);

if (bal.getRichtingEnSnelheid() > 0)
{
bal.setRichtingEnSnelheid(bal.getRichtingEnSnelheid() - 1);
}
else
{
bal.setRichtingEnSnelheid(bal.getRichtingEnSnelheid());
}
}
if (e.getSource() == Langzamer)
{
bal.setRichtingEnSnelheid(bal.getRichtingEnSnelheid() -1);
}
}
}


package h4opdr7;

import javax.swing.*;
import java.awt.*;

public class AutoBalOpstart extends JFrame
{
public AutoBalOpstart()
{
JFrame venster = new JFrame();
venster.setSize(700,400);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
venster.setTitle("Automatische bal");
venster.setLocation(100,100);

AutoBal bal;
bal = new AutoBal();
venster.add( bal, BorderLayout.CENTER);

AutoBalBediening bedieningspaneel;
bedieningspaneel = new AutoBalBediening(bal);
venster.add(bedieningspaneel, BorderLayout.SOUTH);

venster.setVisible(true);
}

public static void main( String[] args)
{
new AutoBalOpstart();
}
}

Wat het nu doet, is: Als de bal richting de rechterkant gaat en je drukt op langzamer, dan staat ie stil, als je nog een keer drukt, gaat de bal de andere kant op. Als hij dan tegen de kant aan gaat en dus omdraait, gebeurt hetzelfde als je op sneller drukt! Ik heb al wat dingetjes geprobeerd zoals je ziet! Het stukje code voor langzamer en sneller staat in AutoBalBediening bijna helemaal onderaan!

Ik hoop dat ik hiermee genoeg heb toegelicht! Als je meer wilt weten moet je dat laten weten!

Alvast bedankt voor de moeite en het lezen,
Mark :)

[Voor 85% gewijzigd door Macromark op 14-11-2010 15:46]


  • Exirion
  • Registratie: februari 2000
  • Nu online

Exirion

Gadgetfetisjist

Ik studeer nu informatica aan HS Leiden. Ik moet ook java doen, ik heb er alleen niet echt aanleg voor en heb er echt veel moeite mee!
*vind je dit nu echt nodig?*

[Voor 36% gewijzigd door MueR op 14-11-2010 15:52]

"Logica brengt je van A naar B, verbeelding brengt je overal." - Albert Einstein


  • Herko_ter_Horst
  • Registratie: november 2002
  • Niet online
*knip* Verder geef je aan wat er nu gebeurt, maar niet wat er zou moeten gebeuren. Als je dat beschrijft, zou volgens mij de oplossing niet moeilijk meer moeten zijn, gegeven wat je nu al hebt.

*knip*

[Voor 96% gewijzigd door MueR op 14-11-2010 15:52]

"Any sufficiently advanced technology is indistinguishable from magic."


  • CodeCaster
  • Registratie: juni 2003
  • Niet online

CodeCaster

👌👀 good shit ✔💯

Exirion schreef op zondag 14 november 2010 @ 15:44:
[...]

Nou, stop dan maar met je studie? Ik snap niet wat je met zo'n opleiding wil als je met dit soort huiswerkvragen komt aanzetten met als excuus dat je 'er geen aanleg voor hebt'.
offtopic:
Dat maakt niet uit op de Hogeschool Leiden: als ook maar een klein aantal mensen een opdracht niet begrijpt dan wordt de opdracht makkelijker gemaakt.

As always, we are nailed to a cross of our own construction.


  • Neverwinterx
  • Registratie: december 2005
  • Laatst online: 16:37
Bekijk de code nog eens goed. Het tricky gedeelte hieraan is dat "richtingEnSnelheid" zoals de naam zelf al zegt de richting en de snelheid bepaalt. Het teken ervan bepaalt links of rechts. De grootte bepaalt de snelheid: waarbij de grootte van "richtingEnSnelheid" zegt hoeveel eenheden de bal per tijdseenheid verplaatst. Als richtingEnSnelheid==1 en je verlaagt dat met -1, dan is het inderdaad logisch dat het dan stilstaat en als je nog is -1 doet, dat het dan de andere kant uitgaat. Met die uitleg moet je er wel geraken: doe het van snelheid veranderen op een andere manier dan zomaar +1 of -1.

  • MueR
  • Registratie: januari 2004
  • Laatst online: 21:33

MueR

Moderator Devschuur®

is niet lief

Code kan je posten via de code tag: Hoe post je code? / Hoe gebruik je de code tag? We zien hier liever geen honderden regels code. Als je een probleem hebt met een bepaald stuk code, willen we alleen de relevante code zien. Dat scheelt een hoop nutteloos leeswerk.

Indien je moeite hebt met een bepaald vak, is je docent de beste om eea aan te vragen. Hij/zij is daar namelijk voor aangenomen. Je opmerking "ik heb geen aanleg" is dan ook iets wat je met hem moet bespreken.

Ik ga dit topic sluiten. Hoewel een huiswerk-topic lang niet altijd verkeerd is, lijkt dit me te veel op een scriptrequest. We gaan de code niet voor je schrijven. Mocht je een nieuw topic openen, lees dan ook de Quickstart nog eens goed door.

Voor de mensen die hier opmerkingen plaatsen dat het topic "zo wel dicht gaat", of dat hij "de FAQ/het beleid moet lezen": Policy mbt replies in 'slechte' topics.

[Voor 10% gewijzigd door MueR op 14-11-2010 15:51]

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!

Pagina: 1

Dit topic is gesloten.



Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee