Szyfrowanie

0

Witam, mam program:

import java.awt.*; 
import java.awt.event.*;

import javax.swing.*;




public class Szyfruj { 
    public static void main (String [] args){ 
        SzyfrujFrame okno = new SzyfrujFrame(); // tworzymy obiekt SzyfrujFrame
        
        okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // zamykanie okna
        okno.setVisible(true); // pokazujemy okno
    }
    

}

class SzyfrujFrame extends JFrame { //klasa SzyfrujFrame dziedziczy po JFrame
    
    private static final int DEF_HEIGHT=150; //wysokość okna
    private static final int DEF_WIDTH=400; //szerokość okna
    
    private String tekst; // tekst do kodowania/dekodowania
    private JButton szyfruj = new JButton("Koduj"); //przycisk koduj
    private JButton deszyfruj = new JButton("Dekoduj"); //przyciski dekoduj
    private JLabel label1= new JLabel("Podaj tekst"); // etykieta 
    private JTextField pole = new JTextField(20); // pole do wprowadzania tekst
    private JLabel label= new JLabel(); // etykieta z wynikiem kodowania/dekodowania
    private JLabel label2= new JLabel("Wynik: "); //etykieta
    
    private JPanel przyciskiPanel = new JPanel(); // panel z przyciskami
    private JPanel polePanel = new JPanel(); //panel z etykietÄ… i pole do wpisywania tekstĂłw
    private JPanel wynikPanel = new JPanel(); //panel z wynikiem
    
    public SzyfrujFrame(){ // konstruktor domyślny
        setTitle("Szyfrowanie"); //ustawienie tytyłu okna
        setSize(DEF_WIDTH, DEF_HEIGHT); // rozmiary okna
        polePanel.add(label1); //dodanie do panelu etykiety
        polePanel.add(pole); //dodanie do panelu pole do wprowadzania
        przyciskiPanel.add(szyfruj); // dadanie przycisku od panelu
        przyciskiPanel.add(deszyfruj); //dodanie przycisku do panelu
        wynikPanel.add(label2); // dodanie etykiety 
        wynikPanel.add(label); //dodane etykiety
        add(przyciskiPanel, BorderLayout.CENTER); //dodanie panelu do okna. Manager BorderLayout. Obszar centralny
        add(polePanel, BorderLayout.NORTH); //dodanie panelu do okna. Manager BorderLayout. Obszar północny
        add(wynikPanel, BorderLayout.SOUTH); //dodanie panelu do okna. Manager BorderLayout. Obszar południowy
        szyfruj.addActionListener(new SzyfrujTekst()); //rejestrujemy słuchacza do przycisku szyfruj
        deszyfruj.addActionListener(new DeszyfrujTekst()); //rejestrujemy sluchacza do przycisku dekoduj
    }

    private class SzyfrujTekst implements ActionListener{ //prywatna klasa szyfrujÄ…ca tekst, implementujÄ…ca interfejs ActionListener
        
               
        public void actionPerformed(ActionEvent e){ //przedefiniowana metoda z interfejsu ActionListener
            tekst=pole.getText().trim(); //pobranie tekstu z pola 
            label.setText(koduj(tekst)); //kodowanie i ustawienia go na etykiecie
        }
        private String koduj (String x){
            String y="";
            int n = x.length();                              
            int i;
            for (i = 0; i < n; i++)
               { 
                int k = (int)x.charAt(i); 
                            // zmiana znaku na liczbĂŞ
                if ((k > 31) && (k < 160))         
                {
                 k = k + n + i; 
                 while (k > 159) {k = k - 128;}
                 y = y+(char)k; 
                           // zmiana liczby na znak
                }
               }     
             return y;
        }
        
    }
    
    private class DeszyfrujTekst implements ActionListener{ // prywatna klasa dekodujÄ…ca implementujÄ…ca interfejs ActionListener
        
              
        private String dekoduj (String x){
            String y="";
            int n = x.length();                              
            int i;
            for (i = 0; i < n; i++)
               { 
                int k = (int)x.charAt(i); 
                            // zmiana znaku na liczbĂŞ
                if ((k > 31) && (k < 160))         
                {
                 k = k - n - i; 
                 while (k > 159) {k = k + 128;}
                 y = y+(char)k; 
                           // zmiana liczby na znak
                }
               }     
             return y;
        }
        
        public void actionPerformed(ActionEvent e){ 
            tekst=pole.getText().trim(); //pobranie tekstu z pola 
            label.setText(dekoduj(tekst)); //dekodowanie i ustawienia go na etykiecie
        }
    }

}  


Program działa i wszystko jest ok, ale jak na moje potrzeby jest zbyt skomplikowany, chciałym żeby obsługiwało się go w linii komend, jakimś prostymi rozkazami typu: s=szyfruj, d=deszyfruj. Czy jest w stanie ktoś mi pomóc w tym temacie?
0
public class Szyfrator{
   public String koduj (String x){
            String y="";
            int n = x.length();                             
            int i;
            for (i = 0; i < n; i++)
               {
                int k = (int)x.charAt(i);
                            // zmiana znaku na liczbĂŞ
                if ((k > 31) && (k < 160))         
                {
                 k = k + n + i;
                 while (k > 159) {k = k - 128;}
                 y = y+(char)k;
                           // zmiana liczby na znak
                }
               }     
             return y;
        }

        public String dekoduj (String x){
            String y="";
            int n = x.length();                             
            int i;
            for (i = 0; i < n; i++)
               {
                int k = (int)x.charAt(i);
                            // zmiana znaku na liczbĂŞ
                if ((k > 31) && (k < 160))         
                {
                 k = k - n - i;
                 while (k > 159) {k = k + 128;}
                 y = y+(char)k;
                           // zmiana liczby na znak
                }
               }     
             return y;
        }
}

To mała podpowiedź na początek. To jak pobierać parametry z konsoli poszukaj na forum.

1 użytkowników online, w tym zalogowanych: 0, gości: 1