Erste Schritte JFrame Caesar-Verschlüsselung

Hallo,

wir haben gerade in der 11. Klasse (Informatik) Java dran. Wir sind gerade bei der Caesar-Verschlüsselung. Wir müssen selber ein Programm dazu schreiben, da ich aber nichts verstanden habe, habe ich ein Problem. Kann mir da vielleicht jemand sein Programm mit ein paar Erklärungen dazu schicken? Das wäre sehr hilfreich, danke!
 

Blender3D

Top Contributor
Code:
public class Caesar {
    private static final String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    /**
     * Verschiebt einen Text um ein Offset. Nur Grossbuchstaben oder Leerzeichen
     * sind erlaubt.
     *
     * @param text
     *            {@link String} to be shifted.
     * @param offset
     *            Offset for the shift can be negative.
     * @return {@link String}
     */
    public static String shift(String text, int offset) {
        text = text.toUpperCase();
        if (text == null || !text.matches("[A-Z ]+"))
            throw new IllegalArgumentException("Only space or letters are allowed!");
        StringBuffer tmp = new StringBuffer();
        for (int i = 0; i < text.length(); i++)
            tmp.append(rotate(text.charAt(i), offset));
        return tmp.toString();

    };

    private static int getIdOfChar(char c) {
        for (int i = 0; i < alphabet.length(); i++) {
            if (c == alphabet.charAt(i))
                return i;
        }
        return -1;
    }

    private static char rotate(char c, int step) {
        int id = getIdOfChar(c);
        id += step;
        if (id < 0)
            return alphabet.charAt(alphabet.length() + id);
        return alphabet.charAt(id % alphabet.length());
    }
}
Code:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class CaesarPanel extends JPanel implements ActionListener {
    private static String[] buttonLabel = { "ENCRYPT", "DECRYPT" };
    private JButton ok = new JButton(buttonLabel[0]);
    private JTextField key = new JTextField("5");
    private JTextField input = new JTextField("TESTWORD");

    CaesarPanel(int width, int height) {
        setPreferredSize(new Dimension(400, 50));
        input.setPreferredSize(new Dimension(150, 40));
        key.setPreferredSize(new Dimension(50, 40));
        ok.setPreferredSize(new Dimension(100, 40));

        add(key);
        add(input);
        add(ok);
        ok.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        boolean ok = input.isEnabled();
        int offset = 0;
        try {
            offset = Integer.parseInt(this.key.getText());
        } catch (NumberFormatException exp) {
            offset = 2; // default value
            key.setText(offset + "");
        }
        if (!ok) {
            offset = -offset;
            this.ok.setText(buttonLabel[0]);
        } else
            this.ok.setText(buttonLabel[1]);
        input.setEnabled(!ok);
        this.key.setEnabled(!ok);
        input.setText(Caesar.shift(input.getText(), offset));
    }
}
Code:
import javax.swing.JFrame;

public class start {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        CaesarPanel p = new CaesarPanel(500, 500);
        f.getContentPane().add(p);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setResizable(false);
        f.setTitle("CAESAR");
        f.setVisible(true);
    }
}
Schau Dir das mal an. ;)
 
Zuletzt bearbeitet:

jo-pi

Neues Mitglied
So, ich bin der Lehrer und freue mich, dass den Jungs und Mädels schön geholfen wird. Es ist ja auch ok wenn die sich informieren, solange sie es dann auch verstehen. Ich lerne ja auch noch was dabei ;-) Soweit Danke an Blender3D
 

Blender3D

Top Contributor
So, ich bin der Lehrer und freue mich, dass den Jungs und Mädels schön geholfen wird. Es ist ja auch ok wenn die sich informieren, solange sie es dann auch verstehen. Ich lerne ja auch noch was dabei ;-)
Man trifft selten Menschen, die einräumen selbst noch zu lernen obwohl Sie selbst Lehrende sind.
Das macht einen ausgezeichneten Lehrer aus. Meinen Respekt :)
Ich selber lerne mit jeder Hilfestellung die ich hier im Forum gebe.
Man lernt im Leben nie aus. ;)
 

L0oNY

Bekanntes Mitglied
Der Schüler wird es beeeestimmt alles verstehen. Er hat ja auch so viel Eigeninitiative gezeigt und schon gute Ansätze geliefert.
</ironie>
Ich denke er wird sich den Code nicht mal anschauen.
 

Blender3D

Top Contributor
Ich denke er wird sich den Code nicht mal anschauen
Das klingt nach einer Herausforderung für den Lehrer den Schüler zu motivieren. :rolleyes:
Bei meinem Studium war es mir eine sehr große Hilfe bei anderen Studierenden, die Lösungen bereits hatten, nachzufragen und mir helfen zu lassen. Ich versuchte den Code oder den mathematischen Hintergrund zu verstehen und aus mir wurde ein brauchbarer Programmierer. Das hätte ich ohne Hilfe nicht geschafft. Mein Professor meinte dazu: Wie man zu einer Lösung kommt ist nicht so wichtig, Hauptsache ist man versteht was man gemacht hat.
Und in den Proseminaren stellte es sich schnell heraus wer es verstanden hat und wer nicht.;)
Der Punkt ist: Ihm war es egal wenn jemand mit einem Plagiat zur Prüfung antrat. Wenn er den Code richtig erklären konnte war er glücklich. :)
Vielmehr er forderte uns sogar dazu auf, uns gegenseitig zu helfen.
Dank dieses ausgezeichneten Lehrers habe ich etwas gelernt. ( Er hat seinen Job, jemanden zu lehren sehr gut gemacht.)
Es gibt leider sehr viele schlechte Lehrer, die nicht wirklich das Lehren im Fokus haben.:confused:
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter

Mit Erfahrung in beiden Seiten seh ich das etwas anders: die, die abgeschrieben haben und erklären konnten, hätten meist entweder direkt eine mindestens gleichwertige Lösung schreiben können, oder können sowas zwar schön erklären, haben aber nicht verstanden, wie man sowas schreibt.

Letztere lernen dann nie das selbst schreiben, und fallen später extrem zurück oder müssen immer von anderen mitgetragen werden. An denen ist dann oftmals das, was eine Uni lehren soll, vorbei gegangen.

(Mit Abschreiben meine ich, fertige Lösung als Vorlage nutzen/kopieren und nicht ein „wie hast du das an der Stelle gelöst“, was ich unter helfen verstehe. Ausnahmen mag es sicherlich geben.
Aus dem Grund findet man von mir hier auch keine fertigen Lösungen.)
 

Blender3D

Top Contributor
Mit Erfahrung in beiden Seiten seh ich das etwas anders
Um mein Aussage noch einmal zu verdeutlichen.
Mein Professor meinte dazu: Wie man zu einer Lösung kommt ist nicht so wichtig, Hauptsache ist man versteht was man gemacht hat
1) Es sollte einem Lehrer das Wichtigste sein, dass der Schüler etwas lernt.
2) Ein Plagiat kann hilfreich sein sofern man daraus lernt.
3) ein Professor sollte erst ein Problem mit einem Plagiat haben, wenn es ohne Verstand benutzt wird.

Das anders zu sehen steht Dir natürlich frei. ;)
Und wir waren damals ein Team von 4 Studenten. Alle haben Ihr Handwerk gelernt. Dank unseres Professors.
Neben Code schreiben und Mathematik habe ich außerdem gelernt teamfähig zu arbeiten.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich verstehe die Aussage durch aus, hab ich auch selbst schon oft genug gehört ;)

Ich kann aber nur aus meiner Erfahrung spreche, und die sagt mir, dass man mit reinem abschreiben (nicht nur helfen lassen!) nie zu einem wirklichen Verständniss des Codes.
Und vor allem fällt dann oft nicht der ganze Prozess, der zu dem Code führt, weg - und das ist durchaus mit das wichtigste.

Die Erfahrung kommt durch etwa 300-400 Studenten, sowohl in Einzel-, als auch Gruppenprojekten.

(Ich habe btw durchaus auch abgeschrieben, von Verständniss war da aber dann nicht viel...)
 
X

Xyz1

Gast
Das ist ein Schande-Thema denn es wurde einfach eine Lösung hingeklatsch ohne Java-Tag's!....
Dadurch lernt er doch nicht und der Lehrer hat recht....
Caesar ist so elementar dass es jeder können muss.
Auch wenn er nach Schule nicht Informatik Papst werden will
das MUSS sein. :rolleyes:
@Blender3D überdenke Dein Vorgehen.
 

mrBrown

Super-Moderator
Mitarbeiter
Ähnliche Java Themen
  Titel Forum Antworten Datum
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
E JFrame + Buffer-strategy Java Basics - Anfänger-Themen 8
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
B HSQL mit JFrame steuern Java Basics - Anfänger-Themen 4
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
D Erste Schritte png in JFrame anzeigen? Java Basics - Anfänger-Themen 3
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
S Kontrollieren ob jframe disposed ist Java Basics - Anfänger-Themen 3
Elyt JFrame in den Hintergrund verschieben Java Basics - Anfänger-Themen 3
OSchriever JFrame-Anwendungsfenster verschieben Java Basics - Anfänger-Themen 17
M Bild in JFrame Java Basics - Anfänger-Themen 1
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
S JFrame Java Basics - Anfänger-Themen 15
I JFrame proportional verkleinerbar machen Java Basics - Anfänger-Themen 3
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
3 JFrame immer im Hintergrund Java Basics - Anfänger-Themen 1
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R JFrame nicht verschiebbar Java Basics - Anfänger-Themen 2
T Wenn JFrame Textfelder Hintergrund Grün dann... (if) Java Basics - Anfänger-Themen 3
K Java JFrame mit Hintergrundbild erstellen Java Basics - Anfänger-Themen 1
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
H Eclipse JFrame Java Basics - Anfänger-Themen 3
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
I JFrame minimieren wenn anderes Programm minimiert wird Java Basics - Anfänger-Themen 1
K Methoden Methode starten wenn JFrame geöffnet wird Java Basics - Anfänger-Themen 2
D Erste Schritte JFrame Inhalte werden nicht angezeigt Java Basics - Anfänger-Themen 8
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
B Ist MyFrame oder JFrame besser? Java Basics - Anfänger-Themen 3
Y JFrame sichtbarkeit Java Basics - Anfänger-Themen 4
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
P JFrame nur einmal öffnen Java Basics - Anfänger-Themen 4
D JFrame - 10 Sekunden bis zum schließen warten. Java Basics - Anfänger-Themen 2
V Tastatur initialisieren JFrame Probleme Java Basics - Anfänger-Themen 6
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
J JFrame ausgabe von Werten Java Basics - Anfänger-Themen 9
F GUI als Klasse oder extend JFrame? Java Basics - Anfänger-Themen 6
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
thomasbomme Grafikfehler JFrame- Cleartype Java Basics - Anfänger-Themen 1
GreyFox Arbeit mit JFrame Java Basics - Anfänger-Themen 8
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
W 2 JPanels in 2Klasse in einem JFrame zusammenfügen Java Basics - Anfänger-Themen 12
dat_vin JFrame öffnet sich mehrmals Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
M Rahmen für undekorierten JFrame Java Basics - Anfänger-Themen 6
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
B Erste Schritte JFrame in Klasse auslagern Java Basics - Anfänger-Themen 4
H JFrame komplett schließen Java Basics - Anfänger-Themen 3
S Brauche hilfe bei Pong (JFrame) Java Basics - Anfänger-Themen 2
M hintergrund in jframe festlegen Java Basics - Anfänger-Themen 4
J JFrame Render Fehler - Warum? Java Basics - Anfänger-Themen 2
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
E 2. JFrame erkennt 1. Frame Java Basics - Anfänger-Themen 6
D Best Practice JFrame im JFrame Java Basics - Anfänger-Themen 2
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
S Erste Schritte Von JFrame in nächstes JFRame wechseln Java Basics - Anfänger-Themen 0
V JFrame aktualisieren Java Basics - Anfänger-Themen 6
S JFrame ist nicht schwarz Java Basics - Anfänger-Themen 5
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
S JFrame wird nicht "bemalt" Java Basics - Anfänger-Themen 2
M Unsichtbare Objekte in JFrame Java Basics - Anfänger-Themen 2
S Textdatei einlesen und JFrame füllen Java Basics - Anfänger-Themen 14
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
B Drawline wird auf JFrame nicht angezeigt Java Basics - Anfänger-Themen 3
N Fokus setzen nachdem JFrame in Vordergrund geholt wurde Java Basics - Anfänger-Themen 7
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
S JFrame leeren Java Basics - Anfänger-Themen 6
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
D JFrame, Komponenten verschmiert. Java Basics - Anfänger-Themen 15
M Schriftfarbe in JFrame Java Basics - Anfänger-Themen 24
A JFrame läuft ewig? Java Basics - Anfänger-Themen 2
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
N JFrame-Objekt in neuer Methode nicht verfügbar? Java Basics - Anfänger-Themen 3
A Frage zu: JFrame setLocationRelativeTo Java Basics - Anfänger-Themen 3
N Erste Schritte Prozessor Kernanzahl in JFrame Java Basics - Anfänger-Themen 3
DStrohma Transparenter JFrame Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Im JFrame Inhalte verändern per Methode aus anderer Class Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben