dynamiczne wyświetlanie zawartości pliku w komponęcie np. JTextArea

dynamiczne wyświetlanie zawartości pliku w komponęcie np. JTextArea
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam!

Mam plik .txt i chcę jego zawartość wyświetlić w jakimś komponęcie. Ale jak zrobić to dynamicznie tj. przy każdej zmianie zawartości pliku wyświetlana była jego aktualna zawartość(a nie ta z chwili wywołania odczytu)? Może jakoś przez Listenera?

  • Rejestracja: dni
  • Ostatnio: dni
0

Uruchamiam program, który wczytuje zawartość pliku i wyświetla zawartość w JTextArea. Plik zawiera słowa: ala, ola, ela. W trakcie działania programu dodaję do pliku słowo
"ula". Program nadal wyświetla ala,ola,ela. Zależy mi żeby z każdą zmianą pliku z miejsca wyświetlana była jego aktualna zawartość.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Zrób coś w rodzaju Timera (nie wiem, jak z nim jest w Javie, ponieważ chyba chodzi Tobie o Javę) i ustaw jego interwał na 5 sekund.
W środku Timera daj wczytywanie pliku, przypisanie tekstu do komponentu i zamknięcie pliku.
Dzięki temu tekst na kontrolce będzie zmieniany co 5 sekund, więc będzie w miarę aktualny.
Ew, można by się pobawić z API, lecz wyżej podany sposób jest najprostszy.

  • Rejestracja: dni
  • Ostatnio: dni
0

Może timer, który co pewien czas sprawdza czy się zmieniła data modyfikacji pliku. Jeśli tak, to wczytuje na nowo plik.
Przy okazji, popraw błąd ortograficzny w tytule bo oczy bolą.

M1
  • Rejestracja: dni
  • Ostatnio: dni
0

dzięki, generalnie o klasie Time lub wątkach myślałem, ale sądziłem że jest jakieś inne rozwiązanie

  • Rejestracja: dni
  • Ostatnio: dni
0

To w Javie się nie można podpiąć do pliku i wisieć na read()?

iooi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 573
0

JDK7 dostarcza kilku klas do nasłuchiwania takich rzeczy:
http://download.oracle.com/javase/tutorial/essential/io/notification.html
Zdecydowanie prostsze rozwiązanie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.