blackarrow123
Nieuwe gebruiker
- Lid geworden
- 30 jun 2012
- Berichten
- 2
Hallo, ik zit met een probleem. Het programma laat dus een bal heen en weer botsen over het scherm en met de knoppen up en down gaat hij op en neer. Dit werkt allemaal. Maar de oefening erachter was dit uit te breiden met een versnel en vertraagknop, faster en slower. Maar ik merk geen verschil als ik op de knoppen druk, ik denk dat mijn variabele ww ( integer) niet in de setDelay() instructie geraakt buiten de eerste keer. Weet er iemand wat er verkeerd is ? Dit zijn de 3 klassen. Het komt uit het boek Java de basis door Andree Hollander, oef 4.7. Ik ben al uren aan het zoeken en word er wanhopig van. Alvast bedankt !!
class 1 :
package h04;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class AutoBal4Opstart extends JFrame
{
private JButton naarlinks, naarrechts, naarboven,naarbeneden ;
AutoBal4 bal;
public AutoBal4Opstart()
{
JFrame venster = new JFrame();
venster.setLayout(new BorderLayout());
venster.setSize(700,400);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
venster.setTitle("auto bal 4");
venster.setLocation(100, 100);
bal = new AutoBal4();
venster.add(bal, BorderLayout.CENTER);
AutoBal4Bediening bedieningspaneel;
bedieningspaneel = new AutoBal4Bediening(bal);
venster.add(bedieningspaneel, BorderLayout.SOUTH);
venster.setVisible(true);
}
public static void main( String [ ] args)
{
new AutoBal4Opstart();
}
}
class 2 :
package h04;
import java.awt.event.*;
import javax.swing.*;
public class AutoBal4Bediening extends JPanel implements ActionListener
{
private JButton wissel;
private JButton up, down, faster, slower;
AutoBal4 bal;
public AutoBal4Bediening(AutoBal4 bal)
{
this.bal = bal;
wissel = new JButton("wissel van richting");
wissel.addActionListener(this);
add(wissel);
up = new JButton("up");
up.addActionListener(this);
down = new JButton("down");
down.addActionListener(this);
faster = new JButton("faster");
faster.addActionListener(this);
slower = new JButton("slower");
slower.addActionListener(this);
add(up);
add(down);
add(faster);
add(slower);
JTextField delay = new JTextField(3);
add(delay);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == wissel)
{
bal.setres(- bal.getres());
}
else if (e.getSource() == down)
{
bal.setVerplaats(bal.getverplaats() +2);
}
else if (e.getSource()== up)
{
bal.setVerplaats(bal.getverplaats() -2);
}
else if (e.getSource()== faster)
{
bal.setspeed((bal.getspeed()/10));
}
else if (e.getSource()== slower);
{
bal.setspeed((bal.getspeed()*10));
}
}
}
class 3 :
package h04;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class AutoBal4 extends JPanel implements ActionListener
{
private int horizontaleplaats = 250;
private int verticaleplaats = 150;
private int res = +1;
private int ww = 30;
public int getspeed()
{
return ww;
}
public int getHorplaats()
{
return horizontaleplaats;
}
public int getverplaats()
{
return verticaleplaats;
}
public int getres()
{
return res;
}
public void setHorplaats(int nhp)
{
horizontaleplaats = nhp;
}
public void setVerplaats(int nvp)
{
verticaleplaats = nvp;
}
public void setres( int nres)
{
res = nres;
}
public void setspeed(int w)
{
ww = w;
}
public AutoBal4()
{
javax.swing.Timer autoklik = new javax.swing.Timer(20, this);
autoklik.start();
autoklik.setDelay(ww);
}
public void actionPerformed(ActionEvent e)
{
setHorplaats(getHorplaats()+res);
if ((horizontaleplaats<=0) || (horizontaleplaats>=(getWidth()-100)))
{
res = -res;
}
repaint();
}
public void paintComponent( Graphics g)
{
super.paintComponent(g);
final int baldia = 100;
g.setColor(Color.ORANGE);
g.fillOval(horizontaleplaats,verticaleplaats, baldia, baldia);
g.setColor(Color.BLACK);
g.drawOval(horizontaleplaats,verticaleplaats, baldia, baldia);
g.drawOval(horizontaleplaats + baldia / 4 ,verticaleplaats, baldia/2, baldia);
}
}
class 1 :
package h04;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class AutoBal4Opstart extends JFrame
{
private JButton naarlinks, naarrechts, naarboven,naarbeneden ;
AutoBal4 bal;
public AutoBal4Opstart()
{
JFrame venster = new JFrame();
venster.setLayout(new BorderLayout());
venster.setSize(700,400);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
venster.setTitle("auto bal 4");
venster.setLocation(100, 100);
bal = new AutoBal4();
venster.add(bal, BorderLayout.CENTER);
AutoBal4Bediening bedieningspaneel;
bedieningspaneel = new AutoBal4Bediening(bal);
venster.add(bedieningspaneel, BorderLayout.SOUTH);
venster.setVisible(true);
}
public static void main( String [ ] args)
{
new AutoBal4Opstart();
}
}
class 2 :
package h04;
import java.awt.event.*;
import javax.swing.*;
public class AutoBal4Bediening extends JPanel implements ActionListener
{
private JButton wissel;
private JButton up, down, faster, slower;
AutoBal4 bal;
public AutoBal4Bediening(AutoBal4 bal)
{
this.bal = bal;
wissel = new JButton("wissel van richting");
wissel.addActionListener(this);
add(wissel);
up = new JButton("up");
up.addActionListener(this);
down = new JButton("down");
down.addActionListener(this);
faster = new JButton("faster");
faster.addActionListener(this);
slower = new JButton("slower");
slower.addActionListener(this);
add(up);
add(down);
add(faster);
add(slower);
JTextField delay = new JTextField(3);
add(delay);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == wissel)
{
bal.setres(- bal.getres());
}
else if (e.getSource() == down)
{
bal.setVerplaats(bal.getverplaats() +2);
}
else if (e.getSource()== up)
{
bal.setVerplaats(bal.getverplaats() -2);
}
else if (e.getSource()== faster)
{
bal.setspeed((bal.getspeed()/10));
}
else if (e.getSource()== slower);
{
bal.setspeed((bal.getspeed()*10));
}
}
}
class 3 :
package h04;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class AutoBal4 extends JPanel implements ActionListener
{
private int horizontaleplaats = 250;
private int verticaleplaats = 150;
private int res = +1;
private int ww = 30;
public int getspeed()
{
return ww;
}
public int getHorplaats()
{
return horizontaleplaats;
}
public int getverplaats()
{
return verticaleplaats;
}
public int getres()
{
return res;
}
public void setHorplaats(int nhp)
{
horizontaleplaats = nhp;
}
public void setVerplaats(int nvp)
{
verticaleplaats = nvp;
}
public void setres( int nres)
{
res = nres;
}
public void setspeed(int w)
{
ww = w;
}
public AutoBal4()
{
javax.swing.Timer autoklik = new javax.swing.Timer(20, this);
autoklik.start();
autoklik.setDelay(ww);
}
public void actionPerformed(ActionEvent e)
{
setHorplaats(getHorplaats()+res);
if ((horizontaleplaats<=0) || (horizontaleplaats>=(getWidth()-100)))
{
res = -res;
}
repaint();
}
public void paintComponent( Graphics g)
{
super.paintComponent(g);
final int baldia = 100;
g.setColor(Color.ORANGE);
g.fillOval(horizontaleplaats,verticaleplaats, baldia, baldia);
g.setColor(Color.BLACK);
g.drawOval(horizontaleplaats,verticaleplaats, baldia, baldia);
g.drawOval(horizontaleplaats + baldia / 4 ,verticaleplaats, baldia/2, baldia);
}
}