Zadanie do wykoannia
Do wyboru są dwa zestawy zadań: zadania 1-3 (łatwiejszy) oraz zadania 4-6 (trudniejszy).
Wykonujemy wybrany przez siebie zestaw. Tylko JEDEN!
I tylko zadania z jednego z zestawów będą brfane pod uwagę przy punktacji.
- Właściwości komponentów - 1 punkt
- Rysowanie - 1 punkt
- Testowanie rozkładów - 3 punkty
- Częstotliwość występowania liter w tekście - wizualizacja (max 6 p.)
- Używanie rozkładów (max 6 punktów)
- Nieco bardziej rozwinięte GUI (max. 8 punktów)
Zadanie 1. Właściwości komponentów
Napisać aplikację, która w oknie JFrame umieszcza edytor tektów (JTextArea)
i ustala kolor tła i pisma edytora na wybrany kolor oraz pismo.
Przykładowo: kolor tła niebieski, kolor pisma - żółty, pismo: Dialog, wytłuszczona kursywa, rozmiar 14.
Zadanie 2. Rysowanie
W oknie aplikacji umieścić panel i narysować jego przekątne.
Zmiany rozmiaru okna mają zmieniać rozmiary panelu i powodować właściwe odrysowywanie przekątnych.
Zadanie 3. Testowanie rozkładów
Pięć przycisków z napisami "Przycisk 1" - "Przycisk 5" pokazać w oknie:
a) w układzie BorderLayou
b) w układzie FlowLayout
c) w układzie FlowLayout z wyrównaniem do lewej
d) w układzie FlowLayout z wyrównaniem do prawej
e) w układzie GridLayout jako jeden wiersz
f) jako jedną kolumnę
g) jako tablice (3, 2)
Proszę napisać to jako jedną aplikację, w której sposób układania komponentów
określany jest w dialogu wejściowym poprzez podanie odpowiedniej litery (A-G).
Zadanie 4. Częstotliwość występowania liter w tekście - wizualizacja
Napisać aplikację, która wczytuje plik tekstowy, którego podano jako
argument programu po czym zlicza częstotliwość wystąpienia poszczególnych
liter
w pliku i podaje wynik graficznie - w postaci wykresu słupkowego, na którym
szerokość słupków jest proporcjonalna do częstości występowania liter, przy
czym minimalna częstość jest oznaczana kolorem szarym, maksymalna - czerwonym,
a posrednie - niebieskim. Za słupkami na wykresie pokazać liczby, oznaczające
odpowiednie częstości.
Litery na wykresie powinny być uporządkowane alfabetycznie.
Przetestować aplikację na pliku tekstowym, zawierającym duży fragment polskiego tekstu.
Rozwiązanie zadania winno spełniać następujące warunki:
- zmieniać szerokość słupków wraz z rozmiarami okna aplikacji (wizualizacja
najczęsciej występującej litery powinna zawsze mniej więc pokrywać aktualną
szerokość okna),
- zapewnić przewijanie pionowe, gdy liczba "wierszy" wizualizacji nie mieści się w oknie (pomoc: wykorzystać JScrollPane),
- uwzględniać porządek polskich liter (pomoc: wykorzystać klasę Collator z pakietu java.text).
Uwaga: w "Materiałach" zalączam plik tekstowy do testowania.
Zadanie 5. Używanie rozkładów
Napisać aplikację, która pokazuje w oknie następujące elementy:
- u góry panel przycisków A, B, C; przy czym przycisk
A ma być zawsze z lewej strony, a przyciski B i C z prawej strony; przyciski
winny mieć pismo niebieskie, Dialog, wytłuszczone, rozmiar 18; przyciski
te powinny być oddzielone od dolnej częsci okna niebieską linią o grubości
2 pikseli oraz przerwą o rozmiarze 10 pikseli między linią a resztą okna;
między przyciskami a linią ma być odstęp 5 pikseli,
- u dołu zestaw przycisków 1, 2, 3, które są wycentrowane
i mają pismo czerwone, Dialog, wytłuszczona kursywa, rozmiar 22; przyciski
te winny być oddzielone od górnej części okna niebieską linią o grubości 2 pikseli oraz przerwą o rozmiarze
10 pikseli między linią a resztą okna; między przyciskami a linią ma być
odstęp 5 pikseli,
- środek okna ma wypełniać z lewej strony zestaw
wszystkich obrazków gif z podanego na starcie aplikacji katalogu, ułożonych
w dwóch kolumnach, a z prawej strony tego zestawu edytor tekstów JTextArea
(z paskami przewijania), wyróżniony grubą czerwoną ramką. Obrazki z plików
gif powinny mieć takie same rozmiary (dołączam zip z obrazkami do testowania)
Wygląd okna przedstawia poniższy rysunek:
Zachowanie komponentów w oknie winno spełniać następujące warunki:
- przy zmianie rozmiarów okna przyciski nie zmieniają swoich rozmiarów ani wyrównania (do lewej, prawej, w centrum).
- przy zmianie rozmiarów okna edytor ma zwiększać rozmiary w obu kierunkach (poziomo i pionowo),
- inicjalnie obrazki z plików gif mają mieć swoje oryginalne rozmiary,
- w zależności od ustawień podawanych jako argumenty aplikacji przy zmianach rozmiarów okna obrazki mają:
- a) nie zwiększać swoich rozmiarów,
- b) zwiększać swoje rozmiary tylko w pionie (reskalowanie) - bez ograniczeń,
- c) zwiększać swoje rozmiary w poziomie i w pionie, ale z ograniczeniem,
którego działanie będzie widocczne (ograniczenie może yć dowolne, chodzi
o to by było widać, że obrazki zmieniają swoje rozmiary, a w którymś momencie
przestają zmieniać przy zwiększaniu rozmiarów okna).
Przykład okna aplikacji ze zwiększonymi obrazkami:
Uwaga; obrazki do testowania załączam w Materiałach.
Zadanie 6. Nieco bardziej rozwinięte GUI
Napisać aplikację, która prezentuje okno GUI, zawierające etykiety i pola
tekstowe, Etykiety powinny być skojarzone z polami tekstowymi za pomocą
mnemonik, które wprowadzają kursor w dane pole tekstowe. Na końcu każdego
"wiersza" etykieta-pole tekstowe winna znajdować się owalna etykieta
z odpowiednio rozmieszonym napisem (zob.dalej), po wskazaniu której myszką
uzyskamy podpowiedź dotyczącą sposobu wpisywania danych.
Pokazuje to poniższy rysunek:
Etykiety, skojarzone z tekstem:
- mają mieć podkreślone litery menmonik, które wprowadzają kurosr w pole tekstowe obok,
- mają mieć tekst i ikonę rozmieszczone tak jak na rysunku, kolor tła wybierany na starcie aplikacji oraz powinny być ujęte w ramkę; ikony czerwone reprezentują dane niezbędne, zielone - niekonieczne,
- ich rozmiary mają być równe i dokładnie takie by zmieścić najdłuższy napis, przy czym powinno to zależeć od pisma (pismo wybieramy na starcie aplikacji),
- przy zmianie rozmiarów okna nie zmieniają swoich rozmiarów.
Pola tekstowe:
- powinny mieć rozmiary różne, zależne od przewidywanej maksymalnej wielkości wpisywanych danych wyrażonej w liczbie znaków i pisma wybieranego na starcie aplikacji, przy czym rozmiar powinien odpowiadac liczbie znaków w danym piśmie,
- przy zmianie rozmiarów okna mogą zmieniać swoje rozmiary (tylko szerokość
i i nie przekraczając wielkości, wynikającej z maksymalnej liczby znaków
w danym piśmie,
- powinny być ujęte w ramkach jak na rysunku.
Etykiety owalne, służące do otwierania podpowiedzi:
- powinny mieć tekst podany jak na rysunku (kilka wierszy, różny kolor wyranych fragmentów, centrowanie tekstu)
- powinny mieć skojarzony tekst pomocy (za pomocą metody setToolTipText),
otwierany jako podpowiedź po wskazaniu etykiety myszką (automat),
- nie zmieniają swoich rozmiarów.
Tekst pomocy:
- ma być ujęty w grubą czerwoną ramkę,
- ma składać się z kliku wierszy,
- fragmenty tekstu mają być wyróżnione (np. kolorem czerwonym).