[JFrame] JFrame+ main okno

0

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;/

0

Wydaje mi się że przy przejściu do głównego okna musisz użyć:

new OknoGlowne().setVisible(true);
0

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:(
0

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.

0
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

0

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 :)

0
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;/

0

a spróbuj okno dialogowe dziedziczyć po JDalog a nie po JFrame + usuń sobie wszelkiego rodzaju "udziwnienia" typu setFocusable itp :)

0

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

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