Zadatak:
Napraviti windows aplikaciju, sa sledećom osnovnom formom (Slika 1.1):
Slika 1.1: Izgled programa
Kreirati klasu Automobil koja ima atribut marka i metodu DajMarku(), koja vraća vrednost tog atributa. Kada korisnik klikne na dugme "Novi automobil", textBox i dugme "Unesi" postaju omogućeni za korisnika (Slika 1.2):
Slika 1.2: Izgled programa posle klika na dugme "Novi automobil"
Kada korisnik unese marku automobila u textBox i klikne na dugme "Unesi", u RichTextBox-u se prikaže prvi automobil koji je unesen. Nakon toga, textBox i dugme "Unesi" ponovo postaju onemogućeni za korisnika (Slika 1.3):
Slika 1.3: Izgled programa posle klika na dugme "Unesi"
Korisniku je omogućeno da dodaje nove automobile istim postupkom (Slika 1.4):
Slika 1.4: Izgled programa posle dodavanja nekoliko automobila u listu
Obavezno je korišćenje klase Automobil za instanciranje pojedinačnih automobila. Klikom na dugme "Obrisi listu" lista automobila se briše, kao i sadržaj RichTextBox-a.
Rešenje:
Za rešavanje ovog zadatka koristi se klasa ArrayList. Iz tog razloga neophodno je, u startu, uključiti prostor imena System.Collections. Klasa Automobil treba da sadrži samo parametarski konstruktor, kojim se dodeljuje vrednost atributu marka, i metodu DajMarku(), koja vraća vrednost tog atributa. Solution Explorer treba da ima sledeći izgled (Slika 1.5):
Slika 1.5: Solution Explorer
Kod za klasu FormAutomobili:
//Deklaracija i instanciranje globalne promenjive liste automobila
ArrayList listaAutomobila = new ArrayList();
//Konstruktor forme
public FormAutomobili()
{
InitializeComponent();
}
private void buttonNovi_Click(object sender, EventArgs e)
{
textBoxNovi.Clear();
textBoxNovi.Enabled = true;
buttonUnesi.Enabled = true;
}
private void buttonUnesi_Click(object sender, EventArgs e)
{
//Kreiranje objekta tipa automobil i dodeljivanje marke kroz parametarski konstruktor
Automobil a = new Automobil(textBoxNovi.Text);
//Dodavanje kreiranog automobila u listu
listaAutomobila.Add(a);
//Ispis automobila pomocu njegove metode DajMarku()
richTextBox1.AppendText(listaAutomobila.IndexOf(a)+1+". " +a.DajMarku()+" !nl!");
//Onemogucavanje odgovarajucih kontrola
textBoxNovi.Enabled = false;
buttonUnesi.Enabled = false;
}
private void buttonObrisi_Click(object sender, EventArgs e)
{
listaAutomobila.Clear();
richTextBox1.Clear();
}
Kompletno rešenje zadatka možete da preuzmete ovde.