Pierwsza plikacja w swing i formularze

0

Cześć,

Piszę swoją pierwszą aplikację w Swingu i nie wiem w zasadzie jak to powinno wyglądać. Mam JFrame, z JMenu. Menu jest, listenery sa poustawiane i teraz chciałbym, żeby przy wyborze opcji z menu "dodaj użytkownika" wyświetlił się formularz? Jak to się robi, może ktoś podać jakiś przykład, link lub wyjaśnić jak powinno zostać to zaimplementowane?

Napiszę jeszcze, że nie miałbym problemu z tworzeniem pól textowych, buttonów itd. tylko do czego ja mam to dowiązać? Do frame? Czy do panelu? (konsternacja)

Dzięki.

0

Tworzysz nowy Frame (np. MojFormularzFrame) i wyswietlasz go (setVisible(true)).

0

Czyli jeżeli mam menu Dodaj

Dodaj

  • użytkownika
  • produkt

to muszę stworzyć 2 funkcje, jedną dla każdego submenu, w których tworzę ramkę i do której dowiązuję różne elementy (pola textowe itd.). Po wybraniu opcji listener wywołuje wspomnianą fukcję z setVisible?

Edycja:
OK, ramka się pojawia jest tylko jeden mankament. Nie jest wycentrowana względem głównej.

0

Metoda setLocationRelativeTo powinna pomóc jeśli chodzi o wycentrowanie okienka. Możesz też użyć JDialog zamiast JFrame lub JOptionPane dla mało rozbudowanych okienek.

http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html

0

Dzięki macged, ramka ładnie się wycentrowała.

Jeśli z menu wybiorę dodaj produkt pokazuje się ramka, kiedy kliknę jeszcze raz pokazuje się druga ramka itd. Wymyśliłem, że mogę zablokować element menu po wywołaniu pierwszej ramki, a potem go odblokować (tu jeszcze nie wiem jak to zrobić, kiedy użytkownik zamknie krzyżykiem). Jest na to jakiś ładniejszy sposób?

I jeszcze jedno pytanie. Dla forumlarza z sześcioma inputami i dwoma buttonami co jest lepsze JFrame czy JOptionPanel? Czym przy wyborze powinienem się kierować? Po poczytaniu wydadje mi się, że na JOptionPanel robi się mniejsze rzeczy.

0

Ja bym proponował albo wykorzystanie obiektu klasy JDialog albo zrobienie klasy ją rozszerzającej implementującej pożądane właściwości. JDialog i JOptionPane z tego co wiem automatycznie blokują całą ramkę rodzica.

0

@up, niezupełnie. Fragment dokumentacji

public JDialog(Dialog owner,String title,boolean modal)
    ...
    modal - specifies whether dialog blocks user input to other top-level windows when shown. If true, the modality type property is set to DEFAULT_MODALITY_TYPE, otherwise the dialog is **modeless**

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