Możłiwości jest kilka (Swing, JavaFX i jeszcze kilka, w tym semiwebowe wykorzystujace Electron), ale tak jak pisze miro najlepiej zabrać się za JaveFX. Jak byś w przyszłości poznawał Kotlina, to tam jest podobna biblioteka o nazwie TornadoFx, więc dużo wiedzy i doświadczenia "przeniesiesz" do nowej biblioteki.
Do zapisu zamiast XML polecam JSON-a - przyjemniej się z nim pracuje, albo jakąś bazę danych.
Jak zaczynasz to niezły tutek na YT ma newboston. Helion rok temu wydał też książke do JavaFX 9.