Platformy Technologiczne
Laboratorium 2
Java: Swing
Zaprojektować oraz zaimplementować aplikację pełniącą funkcję menadżera plików, udostępniającą
następujące funkcjonalności:
–
aplikacja powinna posiadać menu z przynajmniej 2 opcjami głównymi (np. File oraz About)
i przynajmniej z 2 opcjami podrzędnymi (File>Open Folder, File>Close), (Pozycja About
powinna wyświetlać informacje o programie (
JOptionPane
), pozycja Open Folder powinna
pozwalać na wybranie katalogu z dysku (
JFileChooser
)) (1pkt),
–
przeglądanie zawartości wybranego katalogu za pomocą komponentu
JTree
(1pkt),
–
podgląd dokładnych informacji (wybranych przez prowadzącego) o pliku (1pkt),
–
podgląd zawartości pliku graficznego (1pkt),
–
tworzenie nowego pliku/katalogu w wybranym węźle struktury katalogowej – nazwa podawana
jest w nowym oknie o ręcznie (bez użycia trybu design) zaimplementowanym układzie
(wymagany layout manager zostanie podany przez prowadzącego), wykorzystać interfejs
ActionListener (1pkt)
Podpowiedź
Przy pomocy środowiska Netbeans w możliwie najnowszej wersji, należy stworzyć aplikację
typu Java Application. W oknie właściwości projektu dodać do projektu biblitekę Swing Application
Framework. Usunąć klasę
Main.java
oraz dodać nową klasę typu
JFrame
oraz ustawić ją jako klasę
główną projektu.
Podgląd klasy dziedziczącej po
javax.swing.JFrame
jest dostępny w dwóch trybach (źródła –
Source oraz projektu – Design).
W konstruktorze stworzonej klasy następuje inicjalizacja komponentów stworzonych w trybie
Design podglądu pliku. Zawartość funkcji
initComponents()
jest automatycznie generowana na
podstawie trybu Design. Nie należy w niej wykonywać własnych modyfikacji (Netbeans domyślnie nie
zezwala na edycję wygenerowanych fragmentów). Aby ręcznie dodać fragment do wygenerowanego
kodu należy w trybie design wybrać kontrolkę, prawy przycisk myszy a następnie wybrać pozycję
customize code (potrzebne do ustawienia modelu na kontrolce
JTree
). Tryb Design jest trybem
ułatwiającym pracę programiście, jednak nie zawsze wystarczający. Ręcznie wygląd okna można
definiować przy pomocy tzw. zarządcy układu (ang. layout manager).
W celu zrealizowania funkcjonalności wyświetlania plików w kontrolce
JTree
można
wykorzystać jeden z trzech sposobów:
•
Implementacja interfejsu
TreeModel
(
jTree1.setModel(new MyModel()
),
•
Dziedziczenie po klasie
DefaultTreeModel
(
jTree1.setModel(new MyModel()
),
•
Implementacja interfejsu
TreeNode
(
jTree1.setModel(new DefaultTreeModel(new
MyTreeNode()
).