XML w android, tworzenie swing w intellij za pomocą GUI Form

0

Czy mógłby mi ktoś wytłumaczyć na jakiej zasadzie działa to całe tworzenie graficznego interfejsu użytkownika za pomocą XML? Wygląda to dosyć magicznie. Określam sobie jakiś przycisk, wybieram jego właściwości i to wszystko zapisuje się w pliku xml. No dobra, ale jak java to czyta? Jak z tym działa? Podobnie jest w Intelijj, tam jest coś takiego jak GUI form. Ustawiamy sobie elementy, wybieramy ich właściwości i to wszystko leci do pliku xml. Wygląda to zupełnie inaczej niż takie tradycyjne tworzenia Swinga. Jak mówię, wygląda to magicznie. Czy mogę poprosić kogoś o łopatologiczne wytłumaczenie?

1

Wiesz jak stworzyć prostą stronę w html? To działa na takiej samej zasadzie. Masz różne elementy,które są wielokrotnie zagnieżdżone, a następnie parser czyta tą strukturę i na jej podstawie tworzy odpowiedni widok. Różnica jest taka że nie Ty tworzysz widok, a jedynie deklarujesz jak chcesz żeby to wyglądało.

Kawałek w Swing (zajumany z SO):

JPanel jPanel=new JPanel();
jPanel.setLayout(null);
JLabel label = new JLabel("Welcome");                             
jPanel.add(label); 

Analogiczny kawałek dla wyimaginowanego readera widoków:

<JPanel>
 <JLabel text="Welcome" />
</JPanel>

W pierwszym przypadku kod wykonuje się bezpośrednio. W drugim wygląda to mniej więcej tak:

  • Wczytaj i sparsuj plik xml
  • Podaj root element -> JPanel, stwórz obiekt
  • Jeżeli element ma dzieci, to dla każdy z nich dodaj do stworzonego obiektu
  • Dodaj pierwsze dziecko typu JLabel z parametrem text="Welcome"

Metoda z odseparowaniem widoku od programowania wypiera ten pierwszy sposób. W nowszej alternatywie Swinga, JavaFX jest to domyślny sposób deklarowania widoku w którym tworzy się po prostu miodnie. Szybko, prosto i w modelu MVC.

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