Probleem met programma

Status
Niet open voor verdere reacties.

tomino

Nieuwe gebruiker
Lid geworden
14 apr 2013
Berichten
1
Hallo iedereen,
Ik ben pas begonnen aan een cursus java en voor mijn tweede evaluatie moest ik een programma schrijven dat de positie en diameter van een cirkel controleert via sliders en drie punten genereert wanneer ik op een knop druk.

De bedoeling is dan om de cirkel door de drie punten te laten gaan.

Alles werkt ongeveer maar telkens als ik de sliders van de cirkel beweeg verdwijnen de punten.
Ik heb al vanalles geprobeerd maar het lukt me niet
kan iemand mij helpen?

dit is de code:
Code:
package be.cvo.leuven;
import javax.swing.*;

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

public class Cirkel extends JFrame implements ChangeListener,ActionListener {
private JSlider Svert, Shor, Sdia;
private JPanel panel;
private JLabel Lvert, Lhor, Ldia;
private Random random = new Random();
private JButton knop;
int p1,p2,m1,m2,r1,r2,x,y,z;

public static void main (String[] args) {
	Cirkel frame = new Cirkel();
	frame.setSize(700,700);
	frame.createGUI();
	frame.setVisible(true);
	}

public void stateChanged(ChangeEvent evt ){
	int x = Shor.getValue();
	int y = Svert.getValue();
	int z = Sdia.getValue();
	Graphics g = panel.getGraphics();
	teken(g, (int) x , (int) y, (int) z);
	
}
public void actionPerformed(ActionEvent e) {
	int p1,p2,m1,m2,r1,r2;
	Graphics g = panel.getGraphics();
	p1 = random.nextInt(399);
	p2 = random.nextInt(399);
	m1 = random.nextInt(399);
	m2 = random.nextInt(399);
	r1 = random.nextInt(399);
	r2 = random.nextInt(399);
	g.drawOval(p1,p2,2,2);
	g.drawOval(r1, r2, 2, 2);
	g.drawOval(m1, m2, 2, 2);
   
}	


 private void createGUI(){
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 Container venster = getContentPane();
 venster.setLayout(new FlowLayout());
 panel = new JPanel();
 panel.setPreferredSize(new Dimension(400,400));
 panel.setBackground(Color.WHITE);
 Lhor = new JLabel ("Horizontale positie:");
 venster.add(Lhor);
 Shor = new JSlider(JSlider.HORIZONTAL,0,200,20);
 venster.add(Shor);
 Shor.addChangeListener(this);
 Ldia = new JLabel("Diameter:");
 venster.add(Ldia);
 Sdia = new JSlider(JSlider.HORIZONTAL,0,400,20);
 venster.add(Sdia);
 Sdia.addChangeListener(this);
 venster.add(panel);
 Lvert = new JLabel("Verticale positie;");
 venster.add(Lvert);
 Svert = new JSlider(JSlider.VERTICAL,0,200,20);
 Svert.addChangeListener(this);
 venster.add(Svert);
 knop = new JButton("genereer punten");
 knop.addActionListener(this);
 venster.add(knop);
 }

private void teken(Graphics g,int x, int y,int z){
	g.clearRect(1,1,400,400);
	g.setColor(Color.BLACK);
	g.drawOval(x, y, z, z);
	g.drawOval(p1,p2,3,3);
	g.drawOval(m1,m2,3,3);
        g.drawOval(r1,r2,3,3);
    }


}
Alvast bedankt :)
 
Laatst bewerkt door een moderator:
gelieven code tags tegebruiken

maar kijk eens naar
Code:
public void actionPerformed(ActionEvent e) {
int p1,p2,m1,m2,r1,r2;
Graphics g = panel.getGraphics();

//Hier print je het getal van de slider.

p1 = random.nextInt(399);//hier zul je moeten kijken hoe je slider staat 
p2 = random.nextInt(399);
m1 = random.nextInt(399);
m2 = random.nextInt(399);
r1 = random.nextInt(399);
r2 = random.nextInt(399);
g.drawOval(p1,p2,2,2);
g.drawOval(r1, r2, 2, 2);
g.drawOval(m1, m2, 2, 2);

}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan