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?
0
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.