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?