ПредишенСледващото

Учебник по JavaFX 8 - Част данни 5 магазина в XML

  • Съхраняване на данни в XML
  • Компонент JavaFX FileChooser
  • Компонент JavaFX Меню
  • Съхраняване на пътя до последното отваряне на файла в потребителските настройки

Запазване на персонални настройки

Благодарение на класа на Preferences. Java ви позволява да съхранявате част от информацията за състоянието на заявлението. В зависимост от операционната система, Preferences се съхраняват на различни места (например, системния регистър на Windows файлове).

Следващите два методи за поддържане и възстановяване на настройките на нашата молба. Добавете ги към края MainApp клас:

MainApp.java

Съхраняване на данни в XML

Защо XML?

Един от най-разпространените начини за съхраняване на данни, е използването на бази данни. По това време, данните, които сме били съхранявани, са обекти, бази данни ги съдържат в релационна база данни (например, таблици). Това се нарича обектно-релационна импеданс несъответствие. С цел постигане на нашите данни на обектите в съответствие с релационни таблици, които изискват допълнителна работа. Има рамки, които ще спомогнат за постигането на данните за обектите в зависимост от релационна база данни (хибернация - един от най-популярните), но и да започнете да ги използвате, вие също трябва да се направи повече работа и настройка.

За нашия прост модел на данните е много по-лесно за съхранение на данни като XML. За това ние ще използва JAXB библиотека (J Ava А rchitechture за X ML B inding). След написването на няколко реда код, JAXB ще ни позволи да генерира приблизително XML-файл:

Пример за генерирания XML-файла

Използването JAXB

JAXB библиотека вече е включена в JDK. Това означава, че без допълнителни библиотеки не трябва да бъдат свързани.

JAXB предвижда две основни функции: способността да marshallirovaniyu Java обекти за XML и обратно demarshalizatsiyu от XML-файл в Java обекти.

За използване JAXB може да извърши такова преобразуване, ние трябва да се подготви нашия модел.

Получаване клас модели за JAXB

Създаване на нов клас пакет ch.makery.address.model PersonListWrapper.

PersonListWrapper.java

Обърнете внимание на две пояснения:

  • @XmlRootElement посочва името на основния елемент.
  • @XmlElement е незадължителна име, което ние можем да поискаме елемент.

Четене и писане на данни с използване на JAXB

Нека да направим нашия клас MainApp отговорен за данните за четене и писане в нашата молба. За да направите това, добавете в края на MainApp.java клас два метода:

Композиране и demarshalizatsiya готов. Сега, за да използвате новите функции, нека създадем елементи от менюто за спестяване и натоварване.

меню Обработка действие

Създали сме меню RootLayout.fxml файл. но не сме го използвали. Преди да добавите нашия поведение меню, нека създадем в него всички необходими елементи.

Приложението на сцена Builder, отворете RootLayout.fxml на файла и да прехвърли необходимия брой елементи от менюто (MenuItem) от раздела Библиотека в раздела Йерархия. Създаване на следните елементи от менюто: New. Open. , Запазване. Запиши като. и Изход.

Учебник по JavaFX 8 - Част данни 5 магазина в XML

Съвет: за монтаж в горещите ключови елементи от менюто Използвайте Accelerator имота в раздела Properties.

клас RootLayoutController

Ретуширате поведение меню, ние се нуждаем от друг клас контролер. Пакетът създава ch.makery.address.view RootLayoutController клас.

RootLayoutController.java

компонент FileChooser

Обърнете внимание на методите в RootLayoutController клас. се използват FileChooser компонент. На първо място, ние създаваме нова инстанция FileChooser клас. След това използвайте Разширено Филтър - избор на файл ще се появи само тези, които имат .xml разширение. И накрая, ние се покаже компонент над PrimaryStage.

Ако потребителят затвори диалоговия файл нищо е избран, той се връща нула. В противен случай, ние ще вземем избрания файл и го предаде на методите за loadPersonDataFromFile (.) Или savePersonDataToFile (.). които са в MainApp клас.

Свързването FXML-презентация с контролер клас

Приложението на сцена Builder, отворете RootLayout.fxml на файла. В раздела Controller, като клас контролер, изберете RootLayoutController.

Щракнете върху раздела Йерархия и изберете позиция от менюто. В раздела Код от стойността на имота, за да На действие можете да видите всички налични методи на избрания клас контролера. Изберете метод за подходящи за този елемент от менюто.

Учебник по JavaFX 8 - Част данни 5 магазина в XML

Повторете предишната стъпка за всеки елемент от менюто.

Затваряне на сцена Builder приложение и опресняване на проекта (натиснете Refresh (F5) в главната папка на вашия проект). Това ще позволи на околната среда за развитие на Eclipse да "виждат" промените, направени при прилагането на сцени Builder.

основният клас на свързване към клас RootLayoutController

Отваряне на класа и MainApp initRootLayout замени () метод със следния код:

Обърнете внимание на две промени: он-лайн, като контролер за достъп до главния клас на приложението и на последните три реда за зареждане на последното отваряне на файл с регистрите.

тестване

Вътре ch.makery.address.util пакет, да създадете нов клас LocalDateAdapter и копирайте следния код:

LocalDateAdapter.java

След това отворете Person.java клас и поясняват метод getBirthday ():

Сега стартирате приложението отново. Опитайте се да запазите и да се зареди файла с XML-данни. Приложението трябва да се зареди автоматично последната отвори файла, когато рестартирате.

Как работи това

Нека да видим как всичко това работи заедно:

Каква е следващата стъпка?

В шестата част на урока, ще добавим статистическа графика на рождени дни.

Можете също така да се интересуват от някоя друга статия

Свързани статии

Подкрепете проекта - споделете линка, благодаря!