• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Powiadomienia w aplikacji deskopowej

VPS Starter Arubacloud
0 głosów
217 wizyt
pytanie zadane 30 marca 2023 w Java przez Grzegorz1982 Nowicjusz (120 p.)
Witam

Piszę prostą aplikację okienkową w javie polegającą na wprowadzaniu konkretnych zdarzeń wraz z datą przypisaną do zdarzenia.

Na przykład wprowadzam model samochodu i datę jego przeglądu.

Następnie chciałbym, żeby na podstawie tej daty wyskakiwało okienko powiadomienia z przypomieniem na przykład tydzień wcześniej o przeglądzie samochodu. Jakich klas lub interfejsów najlepiej użyć w tym celu?

Planuję, żeby aplikacja była desktopowa i powiadomienie następowało na przykład w momencie otwierania systemu.

2 odpowiedzi

+2 głosów
odpowiedź 30 marca 2023 przez Wiciorny Ekspert (269,120 p.)
edycja 30 marca 2023 przez Wiciorny

 Jakich klas lub interfejsów najlepiej użyć w tym celu?

Napisanych przez Ciebie, z określoną funkcjonalnością?  Bo nie bardzo rozumiem, czego oczekujesz.

Generalnie z Javy to możesz korzystać z 
java.util.Timer to klasa, która umożliwia planowanie zadań do wykonania w przyszłości. java.util.TimerTask to interfejs, który musi być zaimplementowany przez klasę, która ma być wykonana jako zadanie. Chociaż z interfejsu raczej nigdy nie korzystałem, 
Stworzyć sobie możesz jakiś obiekt, reprezentujący to zdarzenie... i po prostu potem stworzyć klasę, która implementuje klase TimerTask ( jest to klasa która działa na bazie wątków więc możesz to uruchomić nie tylko sekwencyjnie, ale próbować równolegle).
 

public class YourEvent extends TimerTask {
    private Event event;

    public YourEvent (Event event) {
        this.event = event;
    }

    @Override
    public void run() {
        JOptionPane.showMessageDialog(null, "Przypomnienie: " + event.getName() + " odbędzie się " + event.getDate());
    }
}

potem np. możesz skorzystać z racji tego że  implementuje interfejs Runnable, możesz ją wydelegować do skorzystania z klasą timer i funkcją shedule
https://www.tutorialspoint.com/java/util/timer_schedule_period.htm 

Event event = new Event("Przegląd samochodu", new Date(2023, 4, 10));
Timer timer = new Timer();
timer.schedule(new EventReminder(event), event.getDate().getTime() - TimeUnit.DAYS.toMillis(7))

Klasa Event- to będzie klasa która zawiera informacje o jakimś zdarzeniu, nazwę, date, itd itp. 

Zauważ, że metoda shedule dla klasy timer przyjmuje jako obiekt " coś co rozszerza TimerTask, a równocześnie coś co rozszerza Runnable", czyli są wykonywane jako wątek i uruchamiane "w momencie trwania programu, innego wątku" 

+1 głos
odpowiedź 30 marca 2023 przez VBService Ekspert (251,210 p.)

Podobne pytania

0 głosów
2 odpowiedzi 383 wizyt
pytanie zadane 29 stycznia 2019 w Java przez krzy123 Początkujący (260 p.)
0 głosów
0 odpowiedzi 187 wizyt
pytanie zadane 15 września 2017 w Java przez fipooo Bywalec (2,880 p.)
0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 7 września 2017 w Java przez fipooo Bywalec (2,880 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...