Witam. Mam taki proble mz którym walcze kilka h i poradzic sobie niemoge. Mam taki kod(wersja skrócona)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class OknoDodaj extends JFrame
{
public OknoDodaj()
{
....
}
}
class Listener_Dodaj
{
String osoba;
ActionListener dodaj = new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
......
}
};
}
class RamkaDodaj extends JFrame
{
Container zawartoscOknoDodaj;
public RamkaDodaj()
{
.......
}
}
Problem polega na tym, że niepotrafie stworzyć obiektów dla tych klas. Chciałbym uzyskac taki efekt, aby klasa
RamkaDodaj widziała klase OknoDodaj
OknoDodaj widziała klase Listenery_Dodaj
Listenery_Dodaj widziała klasy OknoDodaj i RamkaDodaj;
Próbowałem to zrobic
OknoDodaj oknododaj = new OknoDodaj(); (i tak dla wszystkich obiektów). Kompilowało sie ale po uruchomieniu wysypywao sie sporo komunikatów.
run:
Exception in thread "main" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:295)
at java.awt.Window.init(Window.java:284)
at java.awt.Window.<init>(Window.java:318)
at java.awt.Frame.<init>(Frame.java:419)
i tu zkilkadziesiat linijek
próbowałem tez np. w klasie OknoDodaj
Listenery_Dodaj listenery_dodaj;
public oknoDodaj(Listenery_Dodaj listenery_dodaj)
{
this.listenery_dodaj = listenery_dodaj;
........
}
tylko potem chcac stworzyc obiekt klasy OknoDodaj w klasie RamkDodaj kodem
OknoDodaj oknododaj = new OknoDodaj(???);
i w miejce ??? trzeba podac jakies argumenty, ale nie wiem za bardzo jakie, bo konstruktor OknoDodaj jako parametr ma Listenera a klasa RamkaDodaj obiektów Listenery_Dodaj widziec nie musi.
Jak widzicie próbowałem na różne sposoby. Możecie mi pomóc i powiedziec jak mam osiągnąć swój cel?