java-przesyłanie zmiennych z formularza do programu

0

Witam. Od kilku dni mecze się z programem szyfrującym. Program ma wywoływać dwa okna jedno do szyfrowania i drugie do deszyfrowania. Napisałem w bólach (o javie nie mam tak naprawdę pojęcia, miałem trochę do czynienia z podstawowym C i to wszystko, więc obiektowość, klasy itd to dla mnie czarna magia) algorytm szyfrujący i deszyfrujący oraz program, który wyświetla okna z formularzem (w javie) i w tym miejscu utknąłem. Nie mam pojęcia jak zrobić z tego całość. Jak wczytać te zmienne do odpowiednich programów (z okno1 potrzebuję zmienną tekst i klucz przesłać do programu ddff.java a z okno2 szyfr i klucz do programu dekod.java). Proszę o pomoc. Poniżej kod formularza(w komentarzu początki prób wczytywania, jednakże zupełnie nieskuteczne).

import javax.swing.;
import java.awt.
;
public class interfejs {
public static void main(String[]args){
Okno okno1 = new Okno();
okno1.setDefaultCloseOperation(3);
okno1.setVisible(true);
okno1.setTitle("Szyfrator");

	Okno okno2 = new Okno();
	okno2.setDefaultCloseOperation(3);
	okno2.setVisible(true);
	okno2.setTitle("Deszyfrator");
}

}
class Okno extends JFrame {
private JButton guzik;
private JScrollPane suwak;
private JTextArea tekst;
private JTextField klucz;
private JLabel et1, et2;
private JPanel panel, pane2, panel1, panel3;

Okno() {
setSize(400,400);
getContentPane().setLayout(new FlowLayout(0));
panel = new JPanel();
panel.setLayout(new FlowLayout(0));
getContentPane().add(panel);
panel1 = new JPanel();
panel1.setLayout(new FlowLayout(0));
getContentPane().add(panel1);
et1 = new JLabel("tekst");
panel1.add(et1);
tekst = new JTextArea(10,30);
tekst.setEditable(true);
tekst.setMaximumSize(tekst.getPreferredSize());
tekst.setLineWrap(true);
tekst.setWrapStyleWord(true);
suwak = new JScrollPane(tekst);
panel1.add(suwak);
pane2 = new JPanel();
pane2.setLayout(new FlowLayout(0));
getContentPane().add(pane2);
et2 = new JLabel("klucz (minimum 3 znaki)");
pane2.add(et2);
klucz = new JTextField(10);
klucz.setEditable(true);
klucz.setMaximumSize(klucz.getPreferredSize());
pane2.add(klucz);

panel3 = new JPanel();
panel3.setLayout(new FlowLayout(0));
getContentPane().add(panel3);
guzik = new JButton("Zamień");
panel3.add(guzik);
/guzik.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ){
String tekst = tekst.getText().trim();
}
}
);
/
}
}

0

Najprostsze podejscie jest takie: w Swojej klasie Okno implementujesz interfejs, np. TeamPlayer, ktory bedzie sluzyl do komunikacji pomiedzy oknami:

interface TeamPlayer {
    void sendMessage(String message);
}

class Okno extends JFrame implements TeamPlayer {
    private TeamPlayer teamPlayer;
    //...
    public void setTeamPlayer(TeamPlayer teamPlayer) {
        this.teamPlayer = teamPlayer;
    }

    //implementacja interfejsu TeamPlayer
    public void sendMessage(String message) {
        //przetwarzanie otrzymanej wiadomosci
    }
}

Teraz wystarczy tylko wskazac, kto ma sie z kim i kiedy komunikowac:

import java.awt.event.*;
//...
okno1.setTeamPlayer(okno2); //okno1 wysyla komunikaty do okno2
okno2.setTeamPlayer(okno1); //okno2 wysyla komunikaty do okno1

class Okno extends JFrame implements TeamPlayer {
    public Okno() {
        btnGuzik.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            if(teamPlayer != null) {
                teamPlayer.sendMessage("wiadomosc");
            }
        }
    }
});

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