Hallo Java-Freunde =)
Als Vorgeschichte zu meinem Problem kann ich euch sagen, dass wir von der Schule aus die Aufgabe erhalten haben, mit dem Programm Eclipse zuerst einen Text von einem textField in ein neues textPane zu übertragen. Dabei sollen auch die Leerzeichen entfernt, die Anzahl der geschriebenen Buchstaben (mit Leerzeichen sowie ohne Leerzeichen) ausgeben werden.
Als nächste Aufgabe sollten wir den geschriebenen Text mit Hilfe der Ascii-Tabelle in Großbuchstaben umwandeln und via Caesar-Verschlüsselung verschlüsseln. Der verschlüsselten Text sollte anschließend in eine neue Textdatei geschrieben und abgespeichert werden.
Soweit zur Vorgeschichte
Als letzte Aufgabe war/soll es nun erforderlich sein, den verschüsselten Text aus der Textdatei auszulesen und in einem
zweiten textPane_1 darzustellen. Soweit gut, ist alles erledigt. Text wird angezeigt und alles gut
Nun tritt für mich aber folgendes Problem auf, wenn ich den Text aus dem textPane_1 einlese, versuche ihn zu entschlüssen und ihn in einem dritten textPane_2 darzustellen:
Zu sehen sind momentan das textPane_1 und das textPane_2. Im textPane_1 wird noch nach Aufgabe der verschlüsselte Text ausgegeben und im anderen textPane wird nur das h ausgegeben :/
Da stellt sich bei mir jetzt die Frage:
Wieso wird nur das h ausgegeben? Und wieso werden die anderen Buchstaben nicht wieder mit entschlüsselt?! Der komplette Satz wird doch auch verschlüsselt :noe::bahnhof:
hier mal mein Quellcode (vielleicht hilft euch der ja weiter meine Schritte nachzuvollziehen):
Code für Verschlüsselung:
Code für das Schreiben in eine Textdatei:
Code zum Auslesen der Textdatei:
Mein Code für das Entschlüsseln der Caesar-Methode (welcher mir noch Schwierigkeiten bereitet und nur das h ausgibt):
Ich hoffe, dass ihr mir da helfen könnt =)
Mit freundlichen Grüßen
Choonx
ps: das gesamte Fenster sieht dann folgendermaßen aus
(1 Reihe => textField
2 Reihe => Buttons zum Action-ausführen
3 reihe => 1. textPane um Text zu verschlüsseln
4 Reihe => 2. textPane_1 um den verschlüsselten Text aus der Textdatei auszulesen
5 Reihe => verschlüsselter Text aus textPane_1 soll entschlüsselt in textPane_2 ausgegeben werden)
Als Vorgeschichte zu meinem Problem kann ich euch sagen, dass wir von der Schule aus die Aufgabe erhalten haben, mit dem Programm Eclipse zuerst einen Text von einem textField in ein neues textPane zu übertragen. Dabei sollen auch die Leerzeichen entfernt, die Anzahl der geschriebenen Buchstaben (mit Leerzeichen sowie ohne Leerzeichen) ausgeben werden.
Als nächste Aufgabe sollten wir den geschriebenen Text mit Hilfe der Ascii-Tabelle in Großbuchstaben umwandeln und via Caesar-Verschlüsselung verschlüsseln. Der verschlüsselten Text sollte anschließend in eine neue Textdatei geschrieben und abgespeichert werden.
Soweit zur Vorgeschichte
Als letzte Aufgabe war/soll es nun erforderlich sein, den verschüsselten Text aus der Textdatei auszulesen und in einem
zweiten textPane_1 darzustellen. Soweit gut, ist alles erledigt. Text wird angezeigt und alles gut
Nun tritt für mich aber folgendes Problem auf, wenn ich den Text aus dem textPane_1 einlese, versuche ihn zu entschlüssen und ihn in einem dritten textPane_2 darzustellen:
Zu sehen sind momentan das textPane_1 und das textPane_2. Im textPane_1 wird noch nach Aufgabe der verschlüsselte Text ausgegeben und im anderen textPane wird nur das h ausgegeben :/
Da stellt sich bei mir jetzt die Frage:
Wieso wird nur das h ausgegeben? Und wieso werden die anderen Buchstaben nicht wieder mit entschlüsselt?! Der komplette Satz wird doch auch verschlüsselt :noe::bahnhof:
hier mal mein Quellcode (vielleicht hilft euch der ja weiter meine Schritte nachzuvollziehen):
Code für Verschlüsselung:
Java:
JButton btnVerschlsseln = new JButton("Verschluesseln");
btnVerschlsseln.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String text = txtHalloWelt.getText();
String text1 = txtHalloWelt.getText();
text = text.toUpperCase();
// text = text.toLowerCase();
text = text.replaceAll(" ", "");
int laengemitleer = text1.length();
int laenge = text.length();
int car = 0;
int i;
String out = "";
for (i = 0; i < laenge; i++)
{
car = text.charAt(i) + 3;
if (car > 90)
{
car-=26; //car = car - 26;
}
out += (char) car;
}
textPane.setText(laenge + "\n" + laengemitleer + "\n" + text + "\n" + out);
Code für das Schreiben in eine Textdatei:
Java:
try
{
File file = new File("C:\\Users\\User\\Desktop\\Code.txt");
FileWriter fw = new FileWriter(file);
fw.write(out);
fw.flush();
fw.close();
}
catch( IOException e )
{
e.printStackTrace();
}
}
Code zum Auslesen der Textdatei:
Java:
try
{
BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\User\\Desktop\\Code.txt"));
while ((out = in.readLine()) != null)
{
textPane_1.setText(out);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
Mein Code für das Entschlüsseln der Caesar-Methode (welcher mir noch Schwierigkeiten bereitet und nur das h ausgibt):
Java:
btnEntschluesseln.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = textPane_1.getText();
String out = "";
text = text.toLowerCase();
int laenge = text.length();
int car = 0;
int i;
for (i = 0; i > laenge; i--);
{
car = text.charAt(i) - 3;
if (car < 96)
{
car -= 26;
}
out += (char) car;
}
textPane_2.setText(out);
}
});
Ich hoffe, dass ihr mir da helfen könnt =)
Mit freundlichen Grüßen
Choonx
ps: das gesamte Fenster sieht dann folgendermaßen aus
(1 Reihe => textField
2 Reihe => Buttons zum Action-ausführen
3 reihe => 1. textPane um Text zu verschlüsseln
4 Reihe => 2. textPane_1 um den verschlüsselten Text aus der Textdatei auszulesen
5 Reihe => verschlüsselter Text aus textPane_1 soll entschlüsselt in textPane_2 ausgegeben werden)