Oke ik heb 3 klasse een opstarklasse, paneel klasse en een klasse dobbelsteen. geschreven in Eclips
het betreft 1 stuk code in de dobbelsteen klasse:
Het gaat om 2 stukke code in de paneel klasse:
1) De paincomponent hier staat hoeveel dobbelstenen hij moet plaatsen bij een gekozen aantal.
2) De werpknophandler die het aantal gekozen stenen voorziet van een random gooi.
Is er iemand die mij op weg kan helpen? ik kan nergens echt een concreet voorbeeld vinden waarmee ik zelf de link kan leggen hoe ik mij tot dusver geschreven code kan aanpassen om die arrayList hier in te verwerken.
De code moet volgens H1 t/m H7 van het mooie boek En dan is er... Java 3de druk.
De Opstartklasse:
De dobbelsteen klasse:
Het Paneel:
het betreft 1 stuk code in de dobbelsteen klasse:
Het gaat om 2 stukke code in de paneel klasse:
1) De paincomponent hier staat hoeveel dobbelstenen hij moet plaatsen bij een gekozen aantal.
2) De werpknophandler die het aantal gekozen stenen voorziet van een random gooi.
Is er iemand die mij op weg kan helpen? ik kan nergens echt een concreet voorbeeld vinden waarmee ik zelf de link kan leggen hoe ik mij tot dusver geschreven code kan aanpassen om die arrayList hier in te verwerken.
De code moet volgens H1 t/m H7 van het mooie boek En dan is er... Java 3de druk.
De Opstartklasse:
Code:
public class WPIJ_Start extends JFrame{
public static void main ( String[]args){
//maak een frame
JFrame frame = new WPIJ_Start();
frame.setSize(400, 200);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setTitle("Eerste applicatie");
JPanel Paneel = new WPIJ_Paneel();
frame.setContentPane(Paneel);
frame.setVisible(true);
}
}
De dobbelsteen klasse:
Code:
// datum 8-10-16
public class Dobbelsteen {
private int x1, y1, getal, wakken, ijsberen, pinguins; // added 20-10-16, // Gooi gewijzigd naar getal added wakken beren penguins 26-10-16
public Dobbelsteen(int x1, int y1){
this.x1 = x1;
this.y1 = y1;
}
public void teken(Graphics g){
// tekent de dobbelsteen
g.setColor(Color.BLACK);
g.fillRoundRect(x1, y1, 100, 100, 25, 25);
g.setColor(Color.WHITE);
g.drawRoundRect(x1, y1, 100, 100, 25, 25);
g.setColor(Color.WHITE);
g.drawString(getal+ "", 100, 180);
//teken de stippen
if (getal == 1){
g.fillOval(100, 100, 15, 15);
}
if(getal == 2){
g.fillOval(70, 70, 15, 15);
g.fillOval(130, 130, 15, 15);
}
if(getal == 3){
g.fillOval(70, 70, 15, 15);
g.fillOval(100, 100, 15, 15);
g.fillOval(130, 130, 15, 15);
}
if(getal == 4){
g.fillOval(70, 70, 15, 15);
g.fillOval(70, 130, 15, 15);
g.fillOval(130, 70, 15, 15);
g.fillOval(130, 130, 15, 15);
}
if(getal == 5){
g.fillOval(70, 70, 15, 15);
g.fillOval(100, 100, 15, 15);
g.fillOval(70, 130, 15, 15);
g.fillOval(130, 70, 15, 15);
g.fillOval(130, 130, 15, 15);
}
if(getal == 6){
g.fillOval(70, 70, 15, 15);
g.fillOval(70, 100, 15, 15);
g.fillOval(70, 130, 15, 15);
g.fillOval(130, 70, 15, 15);
g.fillOval(130, 100, 15, 15);
g.fillOval(130, 130, 15, 15);
}
// repaint();
// datum 8-10-16
}
// datum 26-10-16
public void gooi() {
getal = (int) (6 * Math.random() +1); // genereerd een random getal
}
public int aantalWakken(){
if(getal == 1 || getal == 3 || getal ==5){ // kijkt of wakken 1, 3 of 5 om vervolgend de waarde 1 mee tegeven
wakken = 1;
}
else{
wakken = 0; // anders geeft hij de waarde 0
}
return wakken; // returnt de waarde van wakken.
}
public int aantalIJsberen(){
if (getal == 3){ //kijkt of het getal 3 is geeft ijsberen de waarde 2
ijsberen = 2;
}
else if (getal == 5) { //kijkt of het getal 5 is en geeft ijsberen de waarde 4
ijsberen = 4;
}
else {
ijsberen = 0; //anders geeft hij ijsberen de waarde 0
}
return ijsberen; // returnt de waarde ijsberen die hij heeft megekregen
}
public int aantalPinguins(){
if (getal == 1){
pinguins = 6;
}
else if (getal == 3){
pinguins = 4;
}
else if (getal == 5) {
pinguins = 2;
}
else {
pinguins = 0;
}
return pinguins;
}
}
Het Paneel:
Code:
public class WPIJ_Paneel extends JPanel{
//Declateert de textvelden buttons en labels
// datum 8-10-16
// datum 20-10-16 namen aangepast naar aanvang van feedback en JtextField aantalStenen toegevoegd, JLabel toegevoegd
private JTextField oplossingWakken, oplossingIJsberen, oplossingPinguins, aantalStenen, uitkomstWakken, uitkomstIJsberen, uitkomstPinguins, aantalGooien, aantalGoedeGooien, aantalFouteGooien, aantalOplossingenOpgevraagd;
private JButton controleer, werp, geefOp;
private JLabel wakkenIJsberenPinguins, uwOplossing, oplossingWakkenLabel, oplossingIJsberenLabel, oplossingPinguinsLabel, aantalStenenLabel, geefOplossing, uitkomstWakkenLabel, uitkomstIJsberenLabel, uitkomstPinguinsLabel, aantalGooienLabel, aantalGoedeGooienLabel, aantalFouteGooienLabel, aantalOplossingenOpgevraagdLabel, score; //deleted Spel op 20-10-16
private Font wijpFont, uwOplossingFont, geefOplossingFont, scoreFont;
// private int Gooi; weggehaald op 20-10-16
// datum 8-10-16
//declareerd en positioneert de dobbelstenen
// datum 20-10-16
private Dobbelsteen dobbelsteen1 = new Dobbelsteen(300,80);
private Dobbelsteen dobbelsteen2 = new Dobbelsteen(420,80);
private Dobbelsteen dobbelsteen3 = new Dobbelsteen(540,80);
// datum 20-10-16
// datum 26-10-16
private int aantal, controleer1, controleer2, controleer3;
// datum 26-10-16
//datum 27-10-16
private Dobbelsteen dobbelsteen4 = new Dobbelsteen(660,80);
// private Dobbelsteen dobbelsteen5 = new Dobbelsteen(540,80);
// private Dobbelsteen dobbelsteen6 = new Dobbelsteen(540,80);
// private Dobbelsteen dobbelsteen7 = new Dobbelsteen(540,80);
// private Dobbelsteen dobbelsteen8 = new Dobbelsteen(540,80);
//datum 27-10-16
public WPIJ_Paneel(){
// datum 20-10-16
setLayout(null);
// datum 20-10-16
//Attributen textvak
// datum 8-10-16
// datum 20-10-16 namen aangepast naar aanvang van feedback
oplossingWakken = new JTextField (10); // Jou antwoord voor het aantal Wakken
oplossingIJsberen = new JTextField (10); // Jou antwoord voor het aantal ijsberen
oplossingPinguins = new JTextField (10); // Jou antwoord voor het aantal Pinquins
uitkomstWakken = new JTextField (10); // De oplossing Wakken
uitkomstIJsberen = new JTextField(10); // De oplossing Ijsberen
uitkomstPinguins = new JTextField(10); // De oplossing Pinquins
aantalGooien = new JTextField(10); // Het aantal keer gegooid
aantalOplossingenOpgevraagd = new JTextField(10); // Het aantal oplossingen opgevraagd
aantalGoedeGooien = new JTextField(10); // Het aantal goede oplossingen
aantalFouteGooien = new JTextField(10); // Het aantal foute oplossingen
// datum 8-10-16
// datum 20-10-16
aantalStenen= new JTextField(10); //het aantal gekozen stenen
aantalStenen.addActionListener(new AantalStenenHandler()); //datum 27-10-26
aantalStenen.setHorizontalAlignment(JTextField.RIGHT); //datum 27-10-16
aantalStenen.setText("3"); //Datum 7-11-16
// datum 20-10-16
//Attributen Knopjes
// datum 8-10-16
// datum 20-10-16 namen aangepast naar aanvang van feedback
controleer = new JButton("Controleer Oplossing"); //maakt de knop Controleer met de tekst Controleer oplossing er op.
werp = new JButton ("Werp de dobbelsteenen"); // maakt de knop werp met de tekst werp de dobbelsteen er op.
werp.addActionListener(new WerpKnopHandler());
geefOp = new JButton ("Geen idee! Geef de oplossing"); //maakt de knop geeftop met de tekst geen idee geeft de oplossing er op.
// datum 8-10-16
//Attributen met labels
// datum 8-10-16
// datum 20-10-16 namen aangepast naar aanvang van feedback en label Spel weg gehaald
wakkenIJsberenPinguins = new JLabel("Wakken, IJsberen en Penguins"); // Maakt een label aan genaamd Wakken, ijsberen en penquins (titel)
uwOplossing = new JLabel("Uw oplossing"); // maakt een label genaamd Uw oplossing
geefOplossing = new JLabel("Geef oplossing"); // maakt een label genaamd score overzicht
score = new JLabel("Score overzicht"); // maakt een label genaamd Spel
//Spel = new JLabel("Spel"); deleted 20-10-16
// datum 8-10-16
// datum 20-10-16
oplossingWakkenLabel = new JLabel("Aantal wakken:");
oplossingIJsberenLabel = new JLabel("Aantal ijsberen:");
oplossingPinguinsLabel = new JLabel("Aantal pinguins:");
aantalStenenLabel = new JLabel("Aantal dobbelstenen:");
uitkomstWakkenLabel = new JLabel("Aantal wakken:");
uitkomstIJsberenLabel = new JLabel("Aantal ijsberen:");
uitkomstPinguinsLabel = new JLabel("Aantal pinguins:");
aantalGooienLabel = new JLabel("Aantal keer gegooid:");
aantalOplossingenOpgevraagdLabel = new JLabel("Aantal keren oplossing opgevraagd:");
aantalGoedeGooienLabel = new JLabel("Aantal goede oplossingen:");
aantalFouteGooienLabel = new JLabel("Aantal foute oplossingen:");
// datum 20-10-16
//set het font van een aantal labels
// datum 20-10-16
Font wijpFont = new Font("SansSerif", Font.PLAIN, 32);
wakkenIJsberenPinguins.setFont(wijpFont);
Font uwOplossingFont = new Font("SansSerif", Font.PLAIN, 22);
uwOplossing.setFont(uwOplossingFont);
Font geefOplossingFont = new Font("SansSerif", Font.PLAIN, 22);
geefOplossing.setFont(geefOplossingFont);
Font scoreFont = new Font("SansSerif", Font.PLAIN, 22);
score.setFont(scoreFont);
// datum 20-10-16
//Laat het attribuut op het scherm zien
// datum 8-10-16
// datum 20-10-16 namen aangepast naar aanvang van feedback en labels toegevoegd
add(oplossingWakken);
add(oplossingIJsberen);
add(oplossingPinguins);
add(aantalStenen);
add(uitkomstWakken);
add(uitkomstIJsberen);
add(uitkomstPinguins);
add(aantalGooien);
add(aantalGoedeGooien);
add(aantalFouteGooien);
add(aantalOplossingenOpgevraagd);
add(controleer);
add(werp);
add(geefOp);
add(wakkenIJsberenPinguins);
add(uwOplossing);
add(oplossingWakkenLabel);
add(oplossingIJsberenLabel);
add(oplossingPinguinsLabel);
add(aantalStenenLabel);
add(geefOplossing);
add(uitkomstWakkenLabel);
add(uitkomstIJsberenLabel);
add(uitkomstPinguinsLabel);
add(aantalGooienLabel);
add(aantalOplossingenOpgevraagdLabel);
add(aantalGoedeGooienLabel);
add(aantalFouteGooienLabel);
add(score);
// weggehaald add(Spel); 20-10-16
// datum 8-10-16
//Bepaalt de plaats en afmeting van de componenten
// datum 20-10-16
//titel
wakkenIJsberenPinguins.setBounds(150, 10, 500, 50); //done
werp.setBounds(280, 200, 200, 20); //done
aantalStenen.setBounds(650, 200, 50, 20); //done
aantalStenenLabel.setBounds(500, 200, 150, 20); //done
//jou oplossing
uwOplossing.setBounds(20, 50, 200, 30);
oplossingWakken.setBounds(150, 80, 50, 20);
oplossingWakkenLabel.setBounds(20, 80, 200, 20);
oplossingIJsberen.setBounds(150, 100, 50, 20);
oplossingIJsberenLabel.setBounds(20, 100, 200, 20);
oplossingPinguins.setBounds(150, 120, 50, 20);
oplossingPinguinsLabel.setBounds(20, 120, 200, 20);
controleer.setBounds(20, 200, 200, 20);
//de uitkomst
geefOplossing.setBounds(20, 250, 200, 30);
uitkomstWakken.setBounds(170, 280, 50, 20);
uitkomstWakkenLabel.setBounds(20, 280, 200, 20);
uitkomstIJsberen.setBounds(170, 300, 50, 20);
uitkomstIJsberenLabel.setBounds(20, 300, 200, 20);
uitkomstPinguins.setBounds(170, 320, 50, 20);
uitkomstPinguinsLabel.setBounds(20, 320, 200, 20);
geefOp.setBounds(20, 340, 200, 20);
//de score
score.setBounds(250, 250, 200, 30);
aantalGooien.setBounds(500, 280, 50, 20);
aantalGooienLabel.setBounds(250, 280, 300, 20);
aantalOplossingenOpgevraagd.setBounds(500, 300, 50, 20);
aantalOplossingenOpgevraagdLabel.setBounds(250, 300, 300, 20);
aantalGoedeGooien.setBounds(500, 320, 50, 20);
aantalGoedeGooienLabel.setBounds(250, 320, 300, 20);
aantalFouteGooien.setBounds(500, 340, 50, 20);
aantalFouteGooienLabel.setBounds(250, 340, 300, 20);
// datum 20-10-16
}
// datum 20-10-16
public void paintComponent(Graphics g){ //maakt de stenen aan afhankelijk van het aantal dat gekozen is in textfield aantalStenen
super.paintComponent(g);
if (aantal == 3){
dobbelsteen1.teken(g);
dobbelsteen2.teken(g);
dobbelsteen3.teken(g);}
else if (aantal == 4){
dobbelsteen1.teken(g);
dobbelsteen2.teken(g);
dobbelsteen3.teken(g);
dobbelsteen4.teken(g);}
// else if (aantal == 5){
// dobbelsteen1.teken(g);
// dobbelsteen2.teken(g);
// dobbelsteen3.teken(g);
// dobbelsteen4.teken(g);
// dobbelsteen5.teken(g);}
// else if (aantal == 6)
// dobbelsteen1.teken(g);
// dobbelsteen2.teken(g);
// dobbelsteen3.teken(g);
// dobbelsteen4.teken(g);
// dobbelsteen5.teken(g);
// dobbelsteen6.teken(g);}
// else if (aantal == 7)
// dobbelsteen1.teken(g);
// dobbelsteen2.teken(g);
// dobbelsteen3.teken(g);
// dobbelsteen4.teken(g);
// dobbelsteen5.teken(g);
// dobbelsteen6.teken(g);
// dobbelsteen7.teken(g);}
// else if (aantal == 8)
// dobbelsteen1.teken(g);
// dobbelsteen2.teken(g);
// dobbelsteen3.teken(g);
// dobbelsteen4.teken(g);
// dobbelsteen5.teken(g);
// dobbelsteen6.teken(g);
// dobbelsteen7.teken(g);
// dobbelsteen8.teken(g);}
}
// datum 20-10-16
// datum 27-10-16
class AantalStenenHandler implements ActionListener{
public void actionPreformed(ActionEvent e){
int getal = Integer.parseInt (aantalStenen.getText()); //haalt de text op uit aantalStenen
if (getal == 3 || getal == 4 ||getal == 5|| getal == 6|| getal == 7|| getal == 8){ //
aantal = getal;
aantalStenen.setBackground (Color.GRAY); //als het bovenstaande waar is word de achtergrond kleur van het textvak grijs
repaint();
}
else
aantalStenen.setBackground (Color.RED); //als het iets anders is als het bovenstaande kleurt hij het textvak rood
}
// 27-10-16
@Override // ik weet dat het vast hangt aan AantalStenenHandler en dat het bovenstaande overschrijft als het uitgevoerd word. for some reason ik het er niet in heb staan werkt mijn code niet en doet het niets.
public void actionPerformed(ActionEvent arg0) {
int getal = Integer.parseInt (aantalStenen.getText());
if (getal == 3 || getal == 4 ||getal == 5|| getal == 6|| getal == 7|| getal == 8){
aantal = getal;
aantalStenen.setBackground (Color.GRAY);
repaint();
}
else
aantalStenen.setBackground (Color.RED);
}
}
// datum 27-10-16
class WerpKnopHandler implements ActionListener{ //gooid de dobbelstenen afhankelijk van het aantal dat gekozen is bij het deel hier boven
public void actionPerformed(ActionEvent e){
if (aantal == 3){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
}
else if (aantal == 4){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
// dobbelsteen4.gooi();
}
else if (aantal == 5){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
// dobbelsteen4.gooi();
// dobbelsteen5.gooi();
}
else if (aantal == 6){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
//dobbelsteen4.gooi();
//dobbelsteen5.gooi();
//dobbelsteen6.gooi();
}
else if (aantal == 7){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
// dobbelsteen4.gooi();
// dobbelsteen5.gooi();
// dobbelsteen6.gooi();
// dobbelsteen7.gooi();
}
else if (aantal == 8){
dobbelsteen1.gooi();
dobbelsteen2.gooi();
dobbelsteen3.gooi();
// dobbelsteen4.gooi();
// dobbelsteen5.gooi();
// dobbelsteen6.gooi();
// dobbelsteen7.gooi();
// dobbelsteen8.gooi();
}
//27-10-16
//7-11-16
aantalStenen.setText ("3");
oplossingWakken.setText ("0");
oplossingIJsberen.setText ("0");
oplossingPinguins.setText ("0");
uitkomstWakken.setText ("");
uitkomstIJsberen.setText ("");
uitkomstPinguins.setText ("");
oplossingWakken.setBackground (Color.WHITE);
oplossingIJsberen.setBackground (Color.WHITE);
oplossingPinguins.setBackground (Color.WHITE);
repaint();
//7-11-16
}
}
}