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:
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.