probleem over JTextfield JAVA

Status
Niet open voor verdere reacties.

pattex007

Gebruiker
Lid geworden
26 jan 2010
Berichten
15
hallo

ik heb een probleem met het JTextfield

als ik deze code uitvoer met inputdialoog om een waarde te invoeren werkt het wel
Code:
     if (spel.welkeStenen(JOptionPane.showInputDialog(ChapeauView.this, "Welke stenen wenst u opnieuw te gooien:" +
                            "\nA voor alle " +
                            "\nanders nummers gescheiden door spaties (vb. 1 2)." +
                            "\nOm te stoppen druk op q.")
                            , spel, i) == 1) break;

maar als ik het inputdialog vervang door een JTextfield
Code:
 if (spel.welkeStenen(txtInvoer.getText(), spel, i) == 1) break;
dan werkt het niet ik krijg direct een messagedialog

volledige code:
Code:
  btnGooi.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // JOptionPane.showMessageDialog(null, "GOOI", "Spel", JOptionPane.WARNING_MESSAGE);
                for (int i = 0; i < 10; i++) {
                    if (i % 2 == 0) {
                        // eerste keer alle stenen gooien.
                        if (i == 0) {
                            spel.gooi(1);

                        } else {
                            spel.gooi(1, spel.dobbelstenen);
                        }
                        lblSpeler1.setVisible(true);
                        lblSpeler2.setVisible(false);
                        System.out.println(spel.getSpeler1().toString());
                    } else {
                        spel.gooi(2, spel.dobbelstenen);
                        lblSpeler1.setVisible(false);
                        lblSpeler2.setVisible(true);
                        System.out.println(spel.getSpeler2().toString());
                    }
                    if (spel.welkeStenen(txtInvoer.getText(), spel, i) == 1) break;

                /*
                (spel.welkeStenen(JOptionPane.showInputDialog(ChapeauView.this, "Welke stenen wenst u opnieuw te gooien:" +
                            "\nA voor alle " +
                            "\nanders nummers gescheiden door spaties (vb. 1 2)." +
                            "\nOm te stoppen druk op q.").toString()
                            , spel, i) == 1) break; */
                }

                              JOptionPane.showMessageDialog(null, "Het spel is gestoopt.", "Spel", JOptionPane.WARNING_MESSAGE);

            }
        });
 
kan je eens echt de volledige code posten, want je gebruikt sommige objecten die je zelf gemaakt heb die ik niet kan kennen.

Hannesvdc
 
kan je eens echt de volledige code posten, want je gebruikt sommige objecten die je zelf gemaakt heb die ik niet kan kennen.

Hannesvdc
---Klasse Spel----
Code:
public class Spel {
    private Speler speler1;
    private Speler speler2;
    public int[] dobbelstenen = new int[5];


    public Spel(String naam1, String naam2) {
        Hoed hoed = new Hoed();
        //Regel toegevoegd, de spelers spelen met dezelfde stenen.
        speler1 = new Speler(naam1, hoed);
        speler2 = new Speler(naam2, hoed);
    }

    //gooi alle dobbelstenen opnieuw

    public Speler getSpeler1() {
        return speler1;
    }

    public Speler getSpeler2() {
        return speler2;
    }

    public void gooi(int speler) {
        // dobbelstenen globaal gemaakt.
        for (int x = 0; x <= 4; x++) {
            dobbelstenen[x] = 1;
        }

        if (speler == 1) {
            speler1.gooi(dobbelstenen);
        } else if (speler == 2) {
            speler2.gooi(dobbelstenen);
        }
    }

    public int[] getDobbelstenen() {
        return dobbelstenen;
    }
//gooit bepaalde dobbesltenen opnieuw
    //elke waarde die in de array op 1 staat word de bijhorende dobbelsteen opnieuw gegooid

    public void gooi(int speler, int[] dobbelstenen) {
        if (speler == 1) {
            speler1.gooi(dobbelstenen);
        } else if (speler == 2) {
            speler2.gooi(dobbelstenen);
        }
    }

    public  int welkeStenen(String input, Spel spel, int speler) {
        String naam = null;
        if (speler % 2 == 0) {
            naam = spel.speler2.naam;
        } else {
            naam = spel.speler1.naam;
        }
        System.out.println("\n" + naam + " " +
                "Welke stenen wenst u opnieuw te gooien:" +
                "\nA voor alle " +
                "\nanders nummers gescheiden door spaties (vb. 1 2)." +
                "\nOm te stoppen druk op q.");

        String answer = input;
        int retval = 0;
        if (answer.startsWith("q") || answer.startsWith("Q")) {
            retval = 1;
        } else if (answer.startsWith("a") || answer.startsWith("A")) {
            initAlles(spel);// hier worden alle dobbelstenen op 1 gezet zodat ze allemaal gegooid worden.
        } else {
            String[] answers = answer.split(" ");
            initNiets(spel);// de array van dobbelstenen eerst op nul initialiseren.
            for (String a : answers) {
                try {// Try catch voorkomt dat je een foutieve waarde heb ingegeven.
                    int i = Integer.parseInt(a);
                    spel.dobbelstenen[i - 1] = 1;
                } catch (Exception e) {
                    continue;
                }
            }
        }
        return retval;
    }

    public static void initAlles(Spel spel) {
        for (int x = 0; x <= 4; x++) {
            spel.dobbelstenen[x] = 1;
        }
    }

//	Zet de array van opnieuw te gooien dobbelstenen volleding naar 0

    public static void initNiets(Spel spel) {
        for (int x = 0; x <= 4; x++) {
            spel.dobbelstenen[x] = 0;
        }
    }


    @Override
    public String toString() {
        return "resultaat=" + speler1 +
                "\nspeler2=" + speler2;
    }
}

---Klasse Hoed----
Code:
public class Hoed {
    private Teerling[] teerlingen;
    private Teerling teerling;

    public Hoed() {
        this.teerlingen = new Teerling[5];
        for (int x = 0; x <= 4; x++) {
            this.teerling = new Teerling();
            this.teerlingen[x] = teerling;
        }
    }

    public Teerling getTeerling(int index) {
        //eerste teerling = 1; tweede teerling = 2; ....
        return teerlingen[index];
    }

    public void gooi(int[] dobbelstenen) {
         for (int x = 0; x <= 4; x++) {
            if(dobbelstenen[x] == 1) {
                teerlingen[x] = new Teerling();
            }
        }
    }

    //controlere wat de speler heeft gegooid
    //en return: vb: paar=> return 1;  2 paar=> return 2; en zo van klein naar groot
    public int controleer() {
      return 0;
    }

    @Override
    public String toString() {
         String waardes = "";
        for (Teerling teerling : teerlingen) {
            waardes += teerling.toString() + " ";
        }
        return waardes;
    }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan