Erste Schritte JFrame Caesar-Verschlüsselung

Diskutiere JFrame Caesar-Verschlüsselung im Java Basics - Anfänger-Themen Forum; 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...

  1. noNickName1107
    noNickName1107 Neues Mitglied
    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!
     
  2. Vielleicht hilft dir dieser Kurs hier weiter (Klick!)
  3. FourOhFour
    FourOhFour Mitglied
    Caesar-Verschlüsselung
    Java?

    Dir wird keiner einfach die Hausaufgaben machen... Zumindest nicht ohne Bezahlung.
    Du musst schon sagen, was du nicht verstehst (so genau wie möglich...) und Ansätze posten.
     
    noNickName1107 und VfL_Freak gefällt das.
  4. noNickName1107
    noNickName1107 Neues Mitglied
    Ja, das stimmt auch wieder. Aber es kann ja manchmal sein, dass das jemand schon hat.

    Ich versteh nicht, wie ich das in Java schreiben soll.
     
  5. DerWissende
    DerWissende Bekanntes Mitglied
    Was/inwiefern hat denn das JFrame mit dem Caesar-Verschlüsselung-Programm zu tun?
     
  6. noNickName1107
    noNickName1107 Neues Mitglied
    Also, wir müssen ein Programm schreiben, was nach der Caesar-Verschlüsselung einen Klartext (in einem jTextField) in einen Chiffretext (jTextArea,...) überführt. Und wir lernen Java halt nur mit JFrame. Ich muss sozusagen einen jButton programmieren, der das verschlüsselt.
     
  7. DerWissende
    DerWissende Bekanntes Mitglied
    (Besser das per PN zu erklären)

    Hast du schon eine Idee wie das gehen könnte?
     
  8. Blender3D
    Blender3D Aktives Mitglied
    Code (Text):
    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 (Text):
    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 (Text):
    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: 3. Mai 2018
  9. Blender3D
    Blender3D Aktives Mitglied

Die Seite wird geladen...

JFrame Caesar-Verschlüsselung - Ähnliche Themen

JPanle, JFrame und Graphics
JPanle, JFrame und Graphics im Forum AWT, Swing, JavaFX & SWT
Reihenfolge der Komponenten im einem JFrame
Reihenfolge der Komponenten im einem JFrame im Forum AWT, Swing, JavaFX & SWT
Grafik in JFrame einpassen
Grafik in JFrame einpassen im Forum AWT, Swing, JavaFX & SWT
Vererbung von JFrame in einer Klasse entfernen
Vererbung von JFrame in einer Klasse entfernen im Forum Java Basics - Anfänger-Themen
Auslagern von Methoden bei einem JFrame
Auslagern von Methoden bei einem JFrame im Forum Java Basics - Anfänger-Themen
Thema: JFrame Caesar-Verschlüsselung