Witam do napisania jest w sumie 5 programow z javie, programy powiny byc napisane jak najprosciej oraz powiny zawierac komentarze(wytlumaczenie co i do czego i jak). Ponizej opis programow.
Osoba zainteresowany lub bioracym udzial w licytacji zostanie wyslany przykladowy program do opisania,skomentowania. Oferty osobk nie spelniajace tego warunku nie bede brane pod uwage. Adres kontaktowy wsx82@[login to view URL]
--------------------------------------------------------------------
Na poczatek dwa niezalezne projekty opis pozniej
program1
Sortowanie dowolnych obiektów
Zdefiniowac interfejs Porownywalne, który bedzie wymagal metody Mniejsze i Rowne. Zaprojektowac
pare klas wykorzystujacych ten interfejs (liczby rzeczywiste, porzadek alfabetyczny na napisach
itp.). Nastepnie napisac trzy rózne procedury sortujace tablice porównywalnych obiektów,
np. sortowanie babelkowe, sortowanie przez wstawianie czy sortowanie szybkie. Napisac program
demonstrujacy działanie tych procedur
program2
Tekstowa gra przygodowa
Napisac tekstowa gre przygodowa, która umozliwia interakcyjne wprowadzanie z klawiatury
polecen takich jak Wez jablko, Otworz drzwi, Obejrzyj dom, Idz na polnoc itp. Gra powinna
wykorzystywac obiektowosc, np. w przypadku wydania polecenia Otworz drzwi powinna sie
wywoływac metoda otworz obiektu drzwi. W przypadku wydania przez uzytkownika niezrozumiałego
polecenia program powinien generowac stosowne wyjatki i starac sie mu pomóc, np.
Otworz drzewo powinno zgłosic wyjatek, który zakonczy sie komunikatem podobnym do Nie
mozna otworzyc obiektu drzewo.
Fabułe gry pozostawiam w inwencji piszacego program
------------------------------------------------------
Nastepnie do realizacji sa 3 programy kazdy z nich jest kontynuacja i rozwinieciem poprzedniego.
Program1. Na górze okienka bedzie wyswietlanych kilka przycisków, kazdy z jakas nazwa koloru.
tak zeby po kliknieciu na dowolny z tych przycisków kółko narysowane w głównej
czesci okna zmieniało odpowiednio kolor.
W obiekcie klasy mojKomponent powinien byc zapamietany kolor
koła, procedura obsługi zdarzenia powinna go zmieniac po czym wywoływac funkcje
repaint() powodujaca ponowne narysowanie całego okna programu.
Program2. Dodac nowy przycisk, którego przycisniecie spowoduje narysowanie nowego kółka
w losowym lub wprowadzonym z klawiatury miejscu. Losowa liczbe naturalna x z zakresu
0 . . . n - 1
liczyb naturalne maja byc losowane za pomoca funkcji
Random generator = new Random();
int x = [login to view URL]();
Zadecyduj, czy przyciskami z kolorami bedziemy ustalac kolor ostatnio namalowanego kółka,
czy tez tego, które dopiero za chwile bedziemy rysowac.
Utworzenie klasy Kolko przechowujacej dane o kółku (kolor i współrzedne srodka). W
obiekcie klasy mojKomponent mozesz pamietac tablice obiektów klasy Kołko, której rozmiar
nalezy ustalic arbitralnie na poczatku (na kilkanascie lub kilkadziesiat kółek). Metoda
paintComponent powinna rysowac wszystkie kółka z tablicy. Z kolei metoda obsługi zdarzenia
powinna reagowac na nacisniecie nowego przycisku dodajac nowe kółko do tablicy.
Program3. Dodac komponent, który bedzie reagowac na klikniecia myszka na
mojKomponent (główna aplikacja powinna implementowac interfejs MouseListener).
Na poczatku funcka obslugi zdarzenia klikniecia myszka public void mouseClicked
(MouseEvent evt) {...} , ma wypisywac pozycje w ktorej nastapilo klikniecie myszka.
Pozniej zaprogramowac metode public int znajdzKolko (int x, int y) throws Exception klasy
mojKomponent, która bedzie znajdowała numer kółka znajdujacego sie w miejscu klikniecia.
Jesli nic nie zostanie znalezione, metoda powinna zgłosic wyjatek. Wykorzystaj te metode
w funkcji obsługi zdarzenia mouseClicked, tak zeby klikniete kółko zmieniało kolor na biezacy
(ostatnio wybrany). Jesli takie kółko nie zostanie znalezione (przechwycimy wyjatek)
to trzeba wypisac stosowny komunikat na standardowe wyjscie.
import javax.swing.*;
import java.awt.*;
class mojKomponent extends JComponent {
protected void paintComponent(Graphics g) {
[login to view URL]([login to view URL]);
[login to view URL](100,100,20,20);
}
public Dimension getMinimumSize() { return new Dimension(210,210); }
public Dimension getPreferredSize() { return getMinimumSize(); }
}
class Aplikacja extends JFrame {
Aplikacja() {
super(\"Kółko\");
setLayout(new BorderLayout (2,1));
// tworzymy i dodajemy na górze obszar zawierajacy przyciski
JPanel przyciski = new JPanel();
[login to view URL] ([login to view URL]);
JButton b1 = new JButton (\"aaa\"); [login to view URL] (b1);
JButton b2 = new JButton (\"aaa\"); [login to view URL] (b2);
add (przyciski, \"North\");
mojKomponent p = new mojKomponent();
add(p);
pack();
}
public static void main (String args[]) {
Aplikacja app = new Aplikacja();
[login to view URL](true);
}
}
2