Dr.Ikarus Geschrieben 5. November 2009 Teilen Geschrieben 5. November 2009 Hallo zusammen, ich hab ein kleines Problem. ich habe ein GUI, in das man ein Wort eintragen soll, dass dann über einen Schlüssel, den man auch eintragen kann, verschlüsselt wird. Also NormalerText --> Schlüssel --> verschlüsselterText. Den Code für die Verschlüsselung und die GUI hab ich schon geschrieben, aber wie kann ich diese beiden verknüpfen. Oder anders: Wie kann ich den Button dazu bewegen, den Text mit der Verschlüsselung umzuwandeln? Hier ist der Code für die GUI: package chiffren; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Gui extends JFrame{ /** * */ private static final long serialVersionUID = 1L; JButton btn; // public Gui (){ setTitle ("VerSchluessel"); //Name getContentPane().setBackground(Color.LIGHT_GRAY); //Farbe setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Schließen setSize(300,200); JPanel Leinwand = new JPanel(); getContentPane().add(Leinwand); // Button1 /* btn = new JButton("Test"); btn.setPreferredSize(new Dimension(130, 25)); btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ((JButton)e.getSource()).setText("Test Ende"); } }); Leinwand.add(btn);*/ //Textfeld 0 JTextField tf0 = new JTextField("Datei einfügen"); Leinwand.add(tf0); tf0.setPreferredSize(new Dimension(150,30)); //Textfeld 1 JTextField tf1 = new JTextField("Text eingeben"); Leinwand.add(tf1); tf1.setPreferredSize(new Dimension(150,30)); //Textfeld 2 JTextField tf2 = new JTextField("Schlüssel eingeben"); Leinwand.add(tf2); tf2.setPreferredSize(new Dimension(75,30)); // Button2 btn = new JButton("Verschlüsseln"); btn.setPreferredSize(new Dimension(150, 25)); btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ((JButton)e.getSource()).setText("Test Ende"); } }); Leinwand.add(btn); //Textfeld 3 JTextField tf3 = new JTextField("Ergebnis"); Leinwand.add(tf3); tf3.setPreferredSize(new Dimension(150,30)); } // Fenstereigenschaften public static void main(String[] args) { Gui frame = new Gui(); frame.setSize(100,200); frame.setLocation(30,300); frame.pack(); frame.setVisible(true);} } Und hier für die verschlüsselung: public class Enigma{ public static void main (String[]args){} public String decrypt(String cryptText, int key) {// Entschlüsseln StringBuffer ergebnis = new StringBuffer(); key %= 26; for (int i = 0; i < cryptText.length(); i++) { int min = 65, max = 90; } return cryptText; } public String encrypt(String plainText, int key) {// Verschlüsseln String ergebnis = ""; key %= 26; for (int i = 0; i < plainText.length(); i++) { int min = 65, max = 90; int c = plainText.charAt (i); if ((c<'A')||(c>'z')||(c>'Z')&&(c<'a')){ ergebnis +=((char)c); continue; } if (c>max) { min += 32; max += 32; } int cc = c + key; if (cc > max) c= cc - 26; else c= cc; ergebnis +=((char) c); } return ergebnis.toString(); }} Ich hab gelesen, dass man sowas über einen EventManager lösen kann, aber ich verstehe als Noob nicht ganz was das bringt. Geht das denn nicht auch anders? Über Tipps und/oder Anregungen würde ich mich sehr freuen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 5. November 2009 Teilen Geschrieben 5. November 2009 Eine Funktion die ein JButton ausführen soll, wenn er einen Klick registriert, wird über einen ActionListener angegeben. Das heißt, wenn dein JButton vom Benutzer gedrückt wird, wird die actionPerformed()-Method deines ActionListeners ausgeführt. Das heißt, wenn du deinen Text verschlüsseln willst, sobald der JButton gedrückt wird, musst du dieses in dem passenden ActionListener implementieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr.Ikarus Geschrieben 8. November 2009 Autor Teilen Geschrieben 8. November 2009 Danke für die Hilfe, ich hab's hinbekommen. Jetzt habe ich allerdings eine andere Frage. Ich hab einen Button, der auf Druck ein neues Fenster öffnet, aus dem man TextDateien anklicken kann...ähnlich dem Öffnen Fenster in Windows. Wenn ich jetzt eine Datei anwähle und öffne wird in der konsole nicht der Inhalt angezeigt, sondern nur der Dateiname. Wie bekomme ich es hin, den Inhalt der Textdatei anzuzeigen? Da muss ich ja wahrscheinlich in der Zeile System.out.println(selectedFile.getName()); etwas ändern? Oder sollte ich an geeigneter Stelle einen Buffered Reader einbauen? Bisher hab ich folgenden Code: input.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { JFileChooser fileChooser = new JFileChooser(); int returnValue = fileChooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); System.out.println(selectedFile.getName()); } } }); Danke für eventuelle Hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 8. November 2009 Teilen Geschrieben 8. November 2009 Dass bei dir auf der Konsole nur der Dateiname ausgegeben wird, ist ja auch richtig, mit File#getFileName() wird nur der Dateiname ausgegeben. Wenn du den Inhalt dieser Datei haben willst, musst du diese auslesen, das geht entweder wie du schon sagtest, mit einem BufferedReader, oder du nimmst dir die Klasse Scanner zur Hilfe. Mit derer kannst du die Datei dann zeilenweise auslesen und wenn du den Inhalt speicherst, damit weiterarbeiten wie du willst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr.Ikarus Geschrieben 9. November 2009 Autor Teilen Geschrieben 9. November 2009 Okay danke für die Hilfe ich hab alles hinbekommen: Hier für die Nachwelt: input.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { JFileChooser chooser = new JFileChooser(); int returnValue = chooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION) { einlesen.setText("Diese Datei öffnen:" + chooser.getSelectedFile().getParentFile()); klartext.setText("Diese Datei öffnen;" + chooser.getSelectedFile().getAbsoluteFile()); File selectedFile = chooser.getSelectedFile(); System.out.println(selectedFile.getAbsoluteFile()); try { BufferedReader br = new BufferedReader(new FileReader(chooser.getSelectedFile().getAbsoluteFile())); String zeile = br.readLine(); while (zeile != null) { klartext.setText(zeile); zeile = br.readLine(); } }catch (IOException io) { io.printStackTrace(); } } } }); Danke nochmal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.