nicht erkennbarer Fehler

Dogge

Aktives Mitglied
[Java]import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;


public class RateGUIApp extends Applet
implements ActionListener, WindowListener {

Label labSuche1,labSuche2, labSuche3;
Label labText1, labText2;
TextField tfVersuch1, tfVersuch2, tfVersuch3;
Button bInfo, bNeu, bVersuch;
TextArea taInfo;

Font fntFett, fntHead, fntAusgabe;
Rate spiel;
private String strVersuch1="";
private String strVersuch2="";
private String strVersuch3="";
int ergebnis;
int anzahl;

public void init() {
setLayout(null);
setSize(400,400);
addWindowListener(this);
spiel=new Rate();

fntFett= new Font("SansSerif",1,14);
fntHead= new Font("SansSerif",1,20);
fntAusgabe= new Font("Monospaced",0,12);

labText1=new Label("Raten Sie die 3 Ziffern");
labText1.setFont(fntHead);
labText1.setBounds(20,25,350,25);
add(labText1);

labText2=new Label("Loesungen");
labText2.setFont(fntFett);
labText2.setBounds(20,70,120,25);
add(labText2);

labSuche1=new Label("x");
labSuche1.setFont(fntHead);
labSuche1.setBounds(175,70,25,25);
add(labSuche1);

labSuche2=new Label("x");
labSuche2.setFont(fntHead);
labSuche2.setBounds(255,70,25,25);
add(labSuche2);

labSuche3=new Label("x");
labSuche3.setFont(fntHead);
labSuche3.setBounds(170,110,25,25);
add(labSuche3);

tfVersuch1 =new TextField("");
tfVersuch1.setFont(fntFett);
tfVersuch1.setBounds(170,110,25,25);
add(tfVersuch1);

tfVersuch2 =new TextField("");
tfVersuch2.setFont(fntFett);
tfVersuch2.setBounds(250,110,25,25);
add(tfVersuch2);

tfVersuch3 =new TextField("");
tfVersuch3.setFont(fntFett);
tfVersuch3.setBounds(330,110,25,25);
add(tfVersuch3);

bInfo=new Button("Info");
bInfo.setFont(fntFett);
bInfo.setBounds(20,160,80,25);

bInfo.addAcionListener(this);
add(bInfo);

bNeu =new Button("Neues Spiel");
bNeu.setFont(fntFett);
bNeu.setBounds(140,160,100,25);

bNeu.addActionListener(this);
add(bNeu);

bVersuch = new Button("Versuch");
bVersuch.setFont(fntFett);
bVersuch.setBounds(280,160,100,25);
bVersuch.addActionListener(this);
add(bVersuch);

taInfo = new TextArea();
taInfo.setFont(fntAusgabe);
taInfo.setBounds(20,210,360,140);
add(taInfo);

setVisible(true);
spiel.zufallswerte();
}



public void actionPerformed(ActionEvent e) {
if (e.getSource()==bVersuch) {
versuchClicked();
}
if (e.getSource()==bNeu) {
neuClicked();
}
if (e.getSource()==bInfo) {
infoClicked();
}
}

public void windowClosing (WindowEvent e) {
dispose();
System.exit(0);
}

public void windowClosed(WindowEvent e){}
public void windowOpened(WindowEvent e) {}
public void windowActivated (WindowEvent e) {}
public void windowDeactivated(WindowEvent e){}
public void windowIconified(windowEvent e) {}
public void windowDeiconified(windowEvent e){}
private void neuClicked () {
taInfo.append("\"" + "Neues Spiel\"" + "geklickt" + "\n");
anzahl=0;
tfVersuch1.setVisible(true);
tfVersuch2.setVisible(true);
tfVersuch3.setVisible(true);
tfVersuch1.setText("");
tfVersuch2.setText("");
tfVersuch3.setText("");
labSuche1.setText("x");
labSuche2.setText("x");
labSuche3.setText("x");

}

private void versuchClicked() {
//taInfo.append("\""+ "Versuchen" + "\"" + "gecklickt" + "\"");
anzahl++;
ergebnis=0;
anzahl=0;
boolean ok = false;
strVersuch1=tfVersuch1.getText();
strVersuch2=tfVersuch2.getText();
strVersuch3=tfVersuch3.getText();
ok=spiel.ueberpruefe(strVrsuch1, strVersuch2, strVersuch3);
if(ok) {
ergebnis=spiel.werteAus();
if((ergebnis & 4)==4) {
labSuche1.setText(strVersuch1);
tfVersuch1.setVisible(false);
taInfo.append("1.Feld geraten\n");
}
if((ergebnis & 2)==2) {
labSuche2.setText(strVersuch2);
tfVersuch2.setVisible(false);
taInfo.append("2. Feld geraten\n");
}
if((ergebnis & 1)==1) {
labSuche3.setText(strVersuch3);
tfVersuch3.setVisible(false);
taInfo.append("3. Feld geraten\n");
if(ergebnis==7) {
taInfo.append("Nach" + anzahl + "Versuchen fertig\n");
}
else taInfo.append("Bitte noch einmal probieren\n");
}
}

private void infoClicked() {
taInfo.append("Info gecklickt\n");
}

}
[/code]

Fehler:175:illegal start of exspression ;
178:" ;" expected;
179:} expected;

es sollte alles laufen, tut es aer nicht. Sieht jemand den Fehler????
Falls Ihr das ausprobieren wollt hier Rate.java🙁funktioniert)
Java:
import java.util.Random;
public class Rate extends Object {
     private String strErgebnis1="1";
     private String strErgebnis2="2";
     private String strErgebnis3="3";
     private String strVersuch1="";
     private String strVersuch2="";
     private String strVersuch3="";
     Random generator;

     public Rate() {
          generator = new Random();
     }
     
     public boolean überpruefe(String a, String b, String c)
          {if(a.length()==1 && b.length()==1 && c.length()==1) {
           if (a.charAt(0)<'0' || a.charAt(0) > '9') return false;
           if (b.charAt(0)<'0' || b.charAt(0) > '9') return false;
           if (c.charAt(0)<'0' || c.charAt(0) > '9') return false;
           strVersuch1=a; strVersuch2=b; strVersuch3=c;
           return true;
          }
          return false;
          }

     public int werteAus() {
          int gefunden=0;
          if (strVersuch1.equals(strErgebnis1)) { 
           gefunden = gefunden | 4 ; 
          }
          if (strVersuch2.equals(strErgebnis2)) { 
           gefunden=gefunden | 2 ; 
          }
          if (strVersuch3.equals(strErgebnis3)) { 
           gefunden=gefunden | 1 ; 
          }
          return gefunden;
          
     }
     public void zufallsWerte() {
          strErgebnis1=String.valueOf((int)(10*generator.nextDouble()));
          strErgebnis2=String.valueOf((int)(10*generator.nextDouble()));
          strErgebnis3=String.valueOf((int)(10*generator.nextDouble()));
     }     
 
}
[
 
Du hast gefühlte 100 kleine Fehler. Das heißt, du hast Buchstaben von Methoden ausgelassen oder einfach nur falsch geschrieben.

Außerdem fehlt unten bei versuchClicked() eine Klammer am Ende.

Außerdem besitzt Applet, von dem du erbst keine Methode dispose() oder addWindowListener()

Viel Erfolg.
 
Ich hab keine Klammer vergessen!!!! 100 kleine Fehler hab ich auch nicht. Ich hab systematisch geproggt. Die Masse des Codes ist abs. richtig!!!! Richtig, dispose ist für eine Applikation.
Das dispose entfernen ändert aber nichts.
Ich sollte es als Applikation schreiben, oder? Benötige ich Listener Methoden bei Applets überhaupt?
 
Zuletzt bearbeitet:
1) In "versuchClicked()" fehlt am ende deines if() irgendwo eine Klamer. Richtige Formatierung (ordentliches einrücken) hätte das schon verraten.
2) Die beiden letzten WindowsListener Methoden sind falsch : WindowEvent is dort klein. Sieht man hier auch am fehleden Highlight der Klasse.
 
Java:
if(ergebnis==7) {
            taInfo.append("Nach" + anzahl + "Versuchen fertig\n");
            }
            else taInfo.append("Bitte noch einmal probieren\n");
          }
du machst hier die klammer vom else zu die du aber nicht aufmachst..
Java:
   else{
 taInfo.append("Bitte noch einmal probieren\n");
          }

ich hab systematisch geproggt.
das heißt was?

du hast einfach ein paar tippfehler...

Code:
addAcionListener
da fehlt das t
Code:
windowEvent e
Die Klasse schreibt man groß...

...sowas kann man auch ohne forum lösen... ich würd mir eclipse runter laden...
 
Ich hab keine Klammer vergessen!!!! 100 kleine Fehler hab ich auch nicht. Ich hab systematisch geproggt. Die Masse des Codes ist abs. richtig!!!! Richtig, dispose ist für eine Applikation.
Das dispose entfernen ändert aber nichts.
Ich sollte es als Applikation schreiben, oder? Benötige ich Listener Methoden bei Applets überhaupt?

Alles was ich gesagt hatte war richtig. Wenn du deine Fehler nicht einsehen möchtest, dann löse sie bitte selbst. Da helfen dir deine in einem Rudel befindenden Ausrufezeichen auch nichts.😛ueh:
 
In jeder Softwarefirma gibt es mindestestens einen "Mein-Code-Ist-Über-Jeden-Zweifel-Erhaben-Das-Muss-Ein-Compiler-Bug-Sein"-Typen, und irgendwo müssen die ja herkommen 😛
 
Ich hab keine Klammer vergessen!!!! 100 kleine Fehler hab ich auch nicht. Ich hab systematisch geproggt. Die Masse des Codes ist abs. richtig!!!! Richtig, dispose ist für eine Applikation.
Das dispose entfernen ändert aber nichts.
Ich sollte es als Applikation schreiben, oder? Benötige ich Listener Methoden bei Applets überhaupt?

Alles was ich gesagt hatte war richtig. Wenn du deine Fehler nicht einsehen möchtest, dann löse sie bitte selbst. Da helfen dir deine in einem Rudel befindenden Ausrufezeichen auch nichts.😛ueh:

In jeder Softwarefirma gibt es mindestestens einen "Mein-Code-Ist-Über-Jeden-Zweifel-Erhaben-Das-Muss-Ein-Compiler-Bug-Sein"-Typen, und irgendwo müssen die ja herkommen 😛

Na nun seid mal nicht so streng.
Er hat doch recht! Es sind gar nicht 100 kleine Fehler. (Und was du fühlst, Fab1, interessiert gar keinen😳)
Bis jetzt sind ihm erst 4-5 nachgewiesen, und solange nicht 100 nachgewiesen sind, gilt im Sinne der Anklage die Unschuldsvermutung. Und gemessen an geschätzten 1500 Zeichen Code ist mit nur 5 Fehlern wirklich die Masse an Code (nämlich 99,7%) absolut korrekt!:lol:
Also müssen schon WIR weitersuchen!
Also Fab1: Wenn du schon unbedingt helfen willst, dann zügle deine 20-fach maßlos übertriebenen Anschuldigungen eines braven, unbescholtenen, (schon pünktlich seine Steuern bezahlenden?) Bürgers.
😳

PS: vielleicht nimmt er wenigstens den Tipp mit Eclipse ernst. Da proggt sich noch ein Stück systematischer! 😱

Abschließend noch versöhnliche Worte: Ich will mich keinem Newbie-Bashing anschließen. Wir helfen gerne.
Aber @TO: Wenn dir schon so konkrete Fehler gezeigt werden, dann solltest du dankbar sagen: "Mann war ich blind, Danke für die Hilfe!" statt "Seid nicht so gemein! (mit 4 Rufezeichen)"
 
Zuletzt bearbeitet:
Sorry wegen den " !!!!!! ". Werde mir Eclipse runter laden. Die restlichen Fehler habe ich auch gefunden(ca. 7). Bei Rate hat sich ein Fehler eingeschlichen in der Methode überpruefe(korrekt uebe..).
Stimmt. Sowas sollte ich nicht ins Forum stellen. Sorry.
:autsch:
 
Danke, wir helfen ja gerne.
Ich kann ja verstehen, wenn man mal gefrustet ist, und gerade nichts weiterbringt.
Und einen Tag später sieht alles wieder viel freundlicher aus.

Na dann, viel Spaß mit Eclipse!
Wird dich zwar eine Woche zurückwerfen, bis du du mit dem "Monster" auskommst, (und dich wieder frustrieren,) aber dann IST ES GEIL!
  • Du codest dreimal so schnell
  • 80% der Fehler kannst du gar nicht mehr machen,
  • und Debugging macht richtig Spaß!
(Tipp: Schau dir die Kurztasten unbedingt an, wenn du mal einigermaßen mit der Oberfläche vertraut bist.)
 

Zurück
Oben