Aplikacja desktopowa z zapisem danych

0

Witajcie,

mam pytanie nieco teoretyczne, dotyczące zaprojektowania aplikacji desktopowej. Chcę sobie napisać spersonalizowany terminarz, z paroma przydatnymi dla mnie funkcjami, który będzie aplikacją okienkową.

W związku z tym, że chciałbym aby po każdym zamknięciu aplikacji dane z niej były zapisywane z możliwością dopisywania nowych, to mam kilka pytań:

  1. Czy w przypadku apek desktopowych tego typu lepiej jest zastosować zapis do plików (jeśli tak to zwykłe txt czy może np. xml) czy w bazie danych?
  2. Czy zaprogramowanie aplikacji używającej powiadomień w trayu (w postaci przezroczystego okienka) jest możliwe w javie?
  3. Co powinienem zrobić, aby aplikacja ta była możliwa do doinstalowania w systemie z opcją autostartu przy starcie systemu?
    Jeśli chodzi o pytania 2 i 3 to jeśli tak, to co musiałbym zastosować/doczytać.

Z góry dziękuję za odpowiedź na pytania i przepraszam, jeśli są one zbyt banalne... ;)

0
  1. Moim zdaniem najlepiej jakaś plikowa baza danych np. HSQL. Wtedy nie musisz nic dodatkowo instalować a dostęp do danych jest wygodny (np. przez JPA)
  2. Jest możliwe.
    http://docs.oracle.com/javase[...]/uiswing/misc/systemtray.html
    http://docs.oracle.com/javase[...]isc/trans_shaped_windows.html
  3. Nie do końca rozumiem. Trzeba ją wrzucić do autostartu i tyle.
0

Dziękuję za wyjaśnienie.

To jeszcze mam pytania pomocnicze odnośnie tego tematu:

  • jeśli chodzi o bazę danych HSQL, to czy stworzenie aplikacji instalowalnej w systemie będzie implikować konieczność instalowania systemu bazodanowego HSQL na komputerze, na którym będziemy chcieli uruchomić aplikację opartą o system bazodanowy?
  • jeśli chodzi o autostart, to pytałem raczej jak zrobić, aby apkę przekształcić w exe (bo do tej pory pisałem głównie proste programy, odpalane poprzez netbeansa)
0

Osobiście do takich małych projektów używam apache derby i nie narzekam. 2 liby do projektu :).
2 google -> jar2exe

0

@lukusm

  1. HSQL sie nie instaluje. Po prostu przy pierwszym uruchomieniu na dysku w katalogu z aplikacją pojawi się kilka plików w których baza będzie trzymać dane.
    Zobacz sobie to: https://github.com/Pharisaeus/SpringScaffoldApplication to jest aplikacja webowa, ale nie wymaga instalacji czegokolwiek poza samą javą ;)
  2. A musisz? Ja bym to jednak spakował do jara i założył że użytkownik ma zainstalowaną javę.
0

Ok, rozumiem ;) W takim razie pora trochę poczytać na temat tworzenia archiwów .jar, obsługi HSQL i zacząć tworzyć apkę...

A tak abstrahując od tego programu, to jeszcze pytanie pomocnicze - czy do obsługi okienek (przykładowo: jedno okno główne aplikacji + kilka mniejszych - otwierane przy wywołaniu akcji OnMouseOver nad jakimś elementem lub po akcji OnClick) ich stan przechowywać w zmiennych pełniących rolę flag, czy jakoś inaczej? Bo nie wiem, czy nie popełniam błędów przy projektowaniu kodu... Do tej pory robiłem tak, że stan okna (np. czyKlikniete) miałem w zmiennych bool. A tutaj będę potrzebował kilku akcji do jednej kontrolki - okno tymczasowe po najechaniu myszą na element i gotowe do edycji po kliknięciu w element.

0

I jeszcze jedno pytanie (oprócz tych powyższych o flagi): czy wg Was przy tego typu projektach aplikacji okienkowej warto jest pisać kod w oparciu OOP takie, jakiego się człowiek uczy od podstaw, czy może od razu zacząć stosować "object design patterns" oraz pisanie własnych bibliotek? a jeśli tak, to na co zwrócić uwagę (w sensie jakiego rodzaju biblioteki mogą się w takich apkach przydawać)? Pytam, bo chciałbym nauczyć się tego, jak powinna wyglądać dobrze zaplanowana aplikacja...

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