Wymiana zmiennych pomiędzu dwoma JFrame

2012-11-10 17:34
amator222
0

Posiadam dwa JFrame w dwóch oddzielnych klasach(plikach).

W JFrame 1 mam JTextField i JButton

W JFrame 2 też mam JTextField i JButton

Chciałbym aby wpisując jakąś wartość w JFrame 1 można ją było odczytać po uruchomieniu w nowym oknie w JFrame 2.

Czy jest szansa aby zrobić to bez użycia zapisu zmiennych w odrębnych plikach?

Póki co kombinowałem z:


NewJFrame frame = new NewJFrame();
tekst3 = frame.gettekst();

Ale niestety tworząc nowy obiekt nie uwzględniałem przecież tego co wpisałem.

edytowany 1x, ostatnio: olesio, 2016-12-13 18:26

Pozostało 580 znaków

2012-11-10 17:43
0

Pytanie pada po raz 3256.
Do konstruktora jednej z klas przekaż referencję do drugiego okna.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2012-11-10 17:56
amator222
0

Tak tylko, że wtedy mogę odczytać zmienna tylko na "sztywno" zainicjalizowaną w innej klasie.

Pozostało 580 znaków

2012-11-10 18:15
0

Nieprawda.

JFrame1 okno1 = new JFrame1();
new JFrame2(okno);
...
public class JFrame2
{
     private JFrame1 frame1;
     ...
     public JFrame2(JFrame1 frame1)
     {
         this.frame1 = frame1;
     }
     ...
}

W dowolnym fragmencie kodu klasy JFrame1 możesz odczytać co zechcesz z klasy JFrame1 (pod warunkiem, że napiszesz metody dostępowe, albo poprosisz IDE żeby Ci je napisał).


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2012-11-10 18:31
amator222
0

Ok.

Tylko nie działa gdy mam otwarte dwa okna obok siebie i w JFrame1 w jextfield wpisuje "blabla" i chcę to odczytać w JFrame2.

Pozostało 580 znaków

2012-11-10 19:02
0

To musisz w druga stronę, JFrame1 ma referencję do JFrame2, a pole tekstowe ma listenera. Typ listenera zależy od tego co ma być sygnałem zmiany (np. czy po dopisaniu litery w jednym polu ma się ona dopisać w drugim). Możesz też użyć interfejsu Observer.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2012-11-10 19:37
amator222
0

A może jakiś zapis zmiennych w zewnętrznym pliku?
Co lepsze?

Pozostało 580 znaków

2012-11-10 19:42
0

Gorsze, też musisz wiedzieć kiedy z tego pliku odczytać. Bez listenera czy tez Observera sie nie obejdzie.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2012-11-11 12:52
amator222
0

Próbuję dziś od rana i nie działa.

Mógłbyś na przykładzie prostych dwóch klas w NetBeansie np. pokazać jak to ma być.

Z góry dzięki!

Pozostało 580 znaków

2012-11-11 13:00
0

To jeszcze napisz kiedy tekst w drugim oknie ma się zmieniać. Na bieżąco (tzn. po każdej wpisanej literze), czy też po wpisaniu całości użytkownik coś robi (w coś klika, naciska Enter, spluwa przez ramię,...) i wtedy tekst jest przepisywany.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2012-11-11 14:41
amator222
0

Ja chciałbym tak :

Jframe1 ma textfield1, button1 i zmienną String tekst1.
Jframe2 ma textfield2 i button2 i zmienną String tekst2.
Oczywiście osobne pliki.

Wpisujemy w textfield1 "blabla" i naciskamu button1 który zapisuje tekst do zmiennej tekst1.
Uruchamiam sobie Jframe2 i naciskam tam button2 i to skutkuje przepisaniem tekst2 = tekst1 wyświetlenie na textfield2 "blabla".

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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