Witam mój problem polega na tym iz wywolany aplet jFrame jest w tle i jest nie aktywny, tj nic na nim nie moge zrobic(jest tam wyswietlony wykres JFreeChart), i tu mam pytanie jak przeniesc owe okienko jFrame nad glowne okno programu.
Jframe wywoluje przez setVisible, probowalem uzywac focusow jak i przenoszenia okna na spod/wierzch. Jedynie jedna rzecz ktora czesciowo pomogla to uzycie setVisible(false) na glowne okno, a następnie wyświetlenie ramki, lecz wtedy nie umiem powrocic z powrotem do glownego okna. Prosze chociaz o jakas wskazowke ktora nparowadzi mnie do rozwiazania tego problemu;/
Wydaje mi się że przy przejściu do głównego okna musisz użyć:
new OknoGlowne().setVisible(true);
Nowe okno pojawia sie w ActionPerformed, czyli musze cos w tam zrobic, przyanjmiej tak mi sie wydaje, a jak uzyje na glowne okno
setVisible(true);
to zniknie i sie pojawi, czyli nie bedzie zadnego efektu, wystarczyłaby jakas funkcja ktora sprawdza czy frame zostalo zamkniete i jestli tak to podzialac na okno setVisible(true);
, ale juz nie mam pomyslu jak to zrobic:(
jeżeli wywołujesz okno z okna głównego za pomocą np. przycisku to mniej więcej robisz tak :
b1.addActionListener(new ObslugaKlawisza());
class ObslugaKlawisza implements ActionListener {
public void actionPerformed(ActionEvent e) {
frame.setVisible(true);
}
}
gdzie :
b1 - jButton
frame - Klasa która tworzy twoje okno np. Wykres frame = new Wykres();
Wykres dziedziczysz po Jframe().
Ja używałem często także Jdialog.
remigio napisał(a)
jeżeli wywołujesz okno z okna głównego za pomocą np. przycisku to mniej więcej robisz tak :
b1.addActionListener(new ObslugaKlawisza());
class ObslugaKlawisza implements ActionListener { public void actionPerformed(ActionEvent e) { frame.setVisible(true); } }
gdzie :
b1 - jButton
frame - Klasa która tworzy twoje okno np. Wykres frame = new Wykres();
Wykres dziedziczysz po Jframe().
Ja używałem często także Jdialog.
Problemem nie jest to ze sie nie wyswietla, tylko ze sie wyswietla zza glowna forma(focus jest ustawiony na glowna forme) i niestety nie moge nic zrobic, chociaz probowalem edytowac focus.
Jesli dodaje jFrame w taki sposob:
JFrame frame = new JFrame("Frame");
frame.pack();
frame.setVisible(true);
To powstaly aplet jframe pokazuje sie za glowna forma i jest nie aktywny, a mi chodzi zeby pojawial sie przed glownym oknem i byl aktywny
no nie wiem ...może jak byś wkleił działający szkielet to można by było coś więcej powiedzieć...
a czy setFocusable ustawione dla głównej ramki musi być w twoim programie? Może tu tkwi problem :)
remigio napisał(a)
no nie wiem ...może jak byś wkleił działający szkielet to można by było coś więcej powiedzieć...
a czy setFocusable ustawione dla głównej ramki musi być w twoim programie? Może tu tkwi problem :)
Co do kodu, to wystarczy tylko tamto co wkleiłem po prostu powstala ramka jest w tyle, aktualnei usunelem focusable z glownej ramki i sie z tym bawie na razie mam efekt ze jframe sie pojawia jest nad glowna forma ale jest jeszcze nie aktywne, czyli jeszce troche trzeba pomyslec;/
a spróbuj okno dialogowe dziedziczyć po JDalog a nie po JFrame + usuń sobie wszelkiego rodzaju "udziwnienia" typu setFocusable itp :)
Problem sprobowalem rozwiazac w inny sposob mianowicie frame dodaje do Japlet. i obecnie moge wlaczyc osobno i wykres i program glowny, i teraz pytanie co zrobic aby japlet uruchamial sie z poziomu przycisku akcji w glownym programie