Witam, uczę się javy od kilku dni, znam c/c++. Chciałem napisać aplikacje która będzie składać się z kilku okien. Wszystko działa fajnie, z tym że nie wiem jak przesłać tekst z jednego jTextField znajdującego się na jednej stronie do drugiego. Czy mógłby mi ktoś to wytłumaczyć po krótce??
Pozdrawiam.
Nie bardzo rozumiem. To są przecież zwykłe obiekty. Dane pomiędzy nimi przekazujemy zawsze tak samo - jakimiś metodami. W tym przypadku te okna muszą mieć na siebie referencje.
Do konstruktora jednego okna przekaż referencje do drugiego okna. Schematycznie
class Okno1 extends JFrame
...
class Okno2 extends JFrame
{
private Okno1 okno1;
Okno2(Okno1 okno1)
{
this.okno1 = okno1;
...
Okno1 okno = new Okno1();
new Okno2(okno);
Wtedy w klasie Okno2 masz dostęp do zawartości okna klasy Okno1.
Bieluus napisał(a):
... znam c/c++ ...
Ciekawe stwierdzenie zwłaszcza w przypadku kiedy potrzebujesz typowego rozwiązania które działa w C++.
Podepne się pod temat.
W moim przypadku jest C#
Z metod w from1 nie mogę się dostać do form2 ?
Np, żeby przekazać wartość z textbox1 w form1 do textbox1 w form2.
@Lechu_ to jest znak że powinieneś odstawić marne próby pisania aplikacji z GUI i nauczyć się podstaw obiektowości.
obietowość znam, ale ostatni raz C# zajmowałem się 3 lata temu. Najbardziej mnie wkurza to, że jeśli ustawie w textbox1 w form 2 modyfikator na public to i tak kiszka.
W żaden sposób nie mogę się odnieść :(
@Lechu_ "obietowość znam"? chyba jednak nie skoro uważasz że zmiana private na public coś by ci dała...
Tak to jest jak się nie odróżnia klasy od obiektu. Pora się zebrać za podstawy.
Możesz też zastosować eventy, trochę ładniejsze obiektowo rozwiązanie bo masz luźniejsze powiązanie, jednak dla małych aplikacji moze to być przerost formy nad treścią ;p
Dzieki bogdans. Znam c++ ale tam to było jakoś łatwiej mi się dostać, a tymi sposobami nie działało, może dla tego że nie trzeba było pisać specjalnych metod, jest to dla mnie trochę nowe doświadczenie. Spróbuję tym sposobem - nie wiedziałem jak w javie zrobić referencję do tych okien. Dziekuje za pomoc ;)
Wszystko jest ok, działa mi to aczkolwiek dalej mam ten sam błąd - więc przepraszam, ale pewnie źle sformuowałem pytanie. Myślałem że błąd jest w zapisie, lecz mam dalej ten sam błąd. Chodzi oto że TextField w każdych z tych okien maja prywatny dostęp i nie mogę ich zmieniać z innych. Klasy są w dwóch osobnych plikach, korzystam z NetBeansa, robiłem projekt najpierw w zakładce design, ręcznie a później dodawałem eventy.
@Bieluus błagam, odstaw to GUI i naucz sie porządnie programować obiektowo. Wtedy takich problemów mieć nie będziesz.