Cäsar-Code

Freax07

Mitglied
Hallo
sollten für die Schule einen Cäsar Entschlüssler erstellen, habe ich auch soweit gemnacht doch der Compiler gibt mir wieder ein paar Fehlermeldungen.Weiß aber nicht, was er damit meint.Wäre nett wenn mal jemand drüber gucken würde 😉

Java:
 public void jButton1_ActionPerformed(ActionEvent evt) {
  String JTextField1;
  String JTextField2;
  String klartext = JTextField1.getText();
  klartext = klartext.toUpperCase();
  String geheimschrift = "";;
  
  for(int i=0;i<klartext.length();i++)
  {
    c = klartext.charAt(i);
    c = (char)(c+2);
    if (c>"Z"){
     c = (char)(c-26);
    }
    geheimschrift = geheimschrift + c;
  }
    JTextField2.setText(geheimschrift);
    JTextField1.setText("");
  }
 
Hallo,

in Zele 4 greifst Du auf ein Objekt zu, dass noch nicht erzeugt worden ist. Ein Objekt existiert erst nach einer Erzeugung mit new.

Gruß hyperion
 
Oh Verzeihung habe angenommen, dass JTextField1 und JTextfield2 JTextFields wären, sind aber Strings. Strings bilden hier die Ausnahme, da bei Strings kein explizieter Konstruktor nötig ist.

Allerdings wird dir zeile 4 dann immer einen leeren String zurück geben.

Kannst Du bitte mal die Fehlermeldung posten.

Gruß hyperion

edit: Objekte der Klasse String haben übrigens keine Methode getText() siehe String (Java 2 Platform SE v1.4.2)
 
Zuletzt bearbeitet:
Java:
Caesar.java:82:32: cannot find symbol
symbol  : method getText()
location: class java.lang.String
  String klartext = JTextField1.getText();
                               ^
Caesar.java:90:10: operator > cannot be applied to char,java.lang.String
    if (c>"Z"){
         ^
Caesar.java:95:16: cannot find symbol
symbol  : method setText(java.lang.String)
location: class java.lang.String
    JTextField2.setText(geheimschrift);
               ^
Caesar.java:96:16: cannot find symbol
symbol  : method setText(java.lang.String)
location: class java.lang.String
    JTextField1.setText("");
               ^
4 errors

so das sind alle fehlermeldungen 😉
 
Du deklarierst JTextField1 und JTextField2 als Variablen vom Typ String und versuchst dann auf die Methoden getText und setText zuzugreifen - dies sind allerdings Methoden eines JTextFields, keines Strings.
Deklariere JTextField1 und JTextField2 als Klassenvariablen vom Typ JTextField (und mit ordentlichen Namen, z. B. tfKlartext und tfGeheimtext).
 
wie deklariere ich den ein TextField als Klassenvariable?
sry aber check im Moment 0 😛

edit: Fehler bei if habe ich korrigiert, waren falsche Anführungsstriche.
 
Zuletzt bearbeitet:

Zurück
Oben