Oswój rumaka

Trzeba jednak przyznać, że Java rozwija się bardzo dynamicznie. Programiści Suna od dziesięciu lat regularnie udostępniają jej kolejne, poprawione i rozszerzone wersje, zostawiając sceptykom coraz mniej argumentów. Po rewolucyjnym J2SE 5, opublikowanym pod koniec 2004 roku, Sun wypuścił ze swojej stajni kolejną, szóstą wersję beta języka (J2SE 6). Termin “wypuścił ze stajni” pasuje jak ulał – kodowa nazwa najnowszej edycji języka to Mustang. Prace nad nim mają zakończyć się jesienią tego roku. Na ocenę gotowego wydania Javy mamy więc jeszcze trochę czasu. Na razie opowiedzmy o tym, co już o niej wiemy.

Na pierwszy rzut oka

J2SE 6 zapewnia lepszą współpracę z systemem operacyjnym. Dzięki temu używanie kodu natywnego (fragmentów programu zapisanych w języku C/C++, asemblerze itd.) w niektórych przypadkach nie jest już konieczne.

Klasa java.io.File rozszerzona została o nowe metody:

getFreeSpace(), getUsableSpace()

i getTotalSpace(), które zwracają odpowiednio liczbę bajtów wolnej, dostępnej i całkowitej przestrzeni na wskazanej partycji. Ta sama klasa oferuje funkcje, które umożliwiają zdefiniowanie atrybutów plików.

Zupełną nowością są klasy java.awt.SystemTray oraz java.awt.TrayIcon. Pierwsza reprezentuje zasobnik systemowy (tray), druga – umieszczoną w nim ikonę. Do TrayIcon można dołączyć menu kontekstowe, które zostanie wywołane po kliknięciu ikony prawym przyciskiem myszy. Z kolei po podwójnym kliknięciu lewym przyciskiem będą wykonane zadeklarowane przez programistę akcje. Jest to przydatne, gdy piszemy na przykład aplikacje serwerowe, które działają w tle.

Do zasobnika wolno dodać dowolną liczbę obiektów TrayIcon za pomocą metody add(TrayIcon ikona). Podobnie, używając funkcji remove(TrayIcon ikona), można wybraną ikonę usunąć. Dodatkowo, stosując metodę

displayMessage(String naglowek, String tresc, MessageType typWiadomosci)

klasy ImageIcon, wyświetlimy dymki informacyjne. Za ich pomocą powiadomimy użytkownika o stanie programu – np. o zaktualizowaniu aplikacji.

Cierpliwości, zaraz będę

W momencie uruchamiania programu inicjowana jest najpierw wirtualna maszyna Javy (Java Virtual Machine). Od chwili wywołania aplikacji do pojawienia się na ekranie jej okna upływa jednak trochę czasu. I właśnie tutaj widać kolejną zaletę nowej Javy: Mustang potrafi pokazać ekran powitalny jeszcze przed uruchomieniem maszyny wirtualnej.

Powitanie zostanie wyświetlone w postaci obrazów GIF, JPEG lub PNG (także przezroczystych lub animowanych). Wystarczy, że wywołamy program z poziomu Wiersza polecenia i dodamy parametr

splash

:

java -splash:mustang.gif Program

Wolno nam ponadto umieścić w manifeście pliku JAR (Java Archive) parametr

SplashScreen-Image

:

Manifest-Version: 1.0
Main-Class: Program
SplashScreen-Image: mustang.gif

Otwórz, napisz, wydrukuj

Integrację Javy z systemem operacyjnym zapewnia też nowa klasa java.awt.Desktop. Oferuje ona kilka metod. Oto one:

  • browse(URI uri) – otwiera stronę internetową w domyślnej przeglądarce WWW;
  • mail(URI mailtoUri) – uruchamia okno nowej wiadomości domyślnego programu pocztowego. Pole, w którym należy wpisać dane adresata listu, jest wypełniane automatycznie – niezbędne informacje przekazywane są za pośrednictwem parametru mailtoUri;
  • open(File f) – uruchamia program skojarzony z plikiem f;
  • edit(File f) – uruchamia domyślny program do edycji pliku f;
  • print(File f) – drukuje plik f.
  • Każda powyższa metoda może zwrócić wyjątek UnsupportedOperationException. Przed jej wywołaniem należy zatem upewnić się, że operacje drukowania, wysyłania listów itp. są obsługiwane przez system operacyjny. Sprawdzanie przeprowadza się z wykorzystaniem funkcji isSupported().

    Jestem piękny

    Dzięki zastosowaniu natywnego wyglądu komponentów (native Look And Feel) programy jeszcze lepiej dopasowują się do systemu, pod kontrolą którego są uruchamiane. W Mustangu to właśnie system operacyjny odpowiedzialny jest za renderowanie elementów graficznych aplikacji. Przy jednoczesnym zastosowaniu antyaliasingu w czcionkach programy wyglądają lepiej i są bardziej czytelne, zwłaszcza na ekranach monitorów LCD.