Przykłady zadań
(1 i 2 lub 1 i 3 lub1 i 4 lub 1 i 5 )
1. Napisz program, który umożliwia obsługę zdarzenia typu Action – zdefiniuj metody zarządcy zdarzeń obsługującej zdarzenie oraz przyciski typu JButton generujące zdarzenia
public class Aplikacja extends JFrame implements ActionListener
{ JButton przycisk = new JButton(/*Podać parametry */);
JTextArea tekst=new JTextArea(/*Podać parametry */);
String dana = new String ();
public Aplikacja()
{ //zdefiniować ciało konstruktora }
public void actionPerformed (ActionEvent evt)
{/*zdefiniować ciało metody obsługującej zdarzenie od przycisku przycisk*/}
public static void main(String[] arg) throws Exception { Aplikacja pr= new Aplikacja();
pr.show();}
}
2. Wykonaj zadanie 1w formie apletu. Wykonaj zadanie 2 w formie apletu. Sposób zdefiniowania metod wynika ze sposobu ich wywołania w metodzie paint klasy Towar. Do drukowania należy użyć metody drawString(String a, int x, int y) klasy Graphics.
W komentarzach w metodzie paint podano, co drukuje się po wywołaniu metod pokaz oraz podaj_typ w metodzie wyprowadz.
import java.awt.*;
import java.applet.*;
class Towar1 { int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_);}
void pokaz(Graphics g, int a, int b) //na ekranie nazwa i cena { g.drawString(nazwa+", "+cena, a, b); }
}
class Towar2 extends Towar1 { int podatek;
Towar2(/*..*/) { /*..*/ }
void pokaz(/*..*/) { /*..*/ } }
public class Towar extends Applet { public void paint(Graphics g)
{ Towar2 p2 = new Towar2(20,"ksiazka",5);
Towar1 p1 = new Towar1(15,"kalendarz");
p2.pokaz(g,10,20); //ksiazka, 20 p2.pokaz(g,10,40," nazwa, cena, podatek: ");
// nazwa, cena, podatek:
20, ksiazka, 5
p1.pokaz(g,10,80); } //kalendarz, 15 }
3. Wykonaj zadanie 2 w formie apletu. Sposób zdefiniowania metod wynika ze sposobu ich wywołania w metodzie paint klasy Towar. Do drukowania należy użyć metody drawString(String a, int x, int y) klasy Graphics. W komentarzach w metodzie paint podano, co drukuje się po wywołaniu metod pokaz oraz podaj_typ w metodzie wyprowadz.
import java.awt.*;
import java.applet.*;
interface Dane
{ String produkt ="Typ produktu: ";
public void podaj_typ(Graphics g, int a, int b); } class Towar1 implements Dane
{ int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_);}
void pokaz (Graphics g, int a, int b) //na ekranie nazwa i cena { g.drawString(nazwa+", "+cena, a, b); }
public void podaj_typ(/*..*/) { /* */ }
}
class Towar2 extends Towar1 { int podatek;
Towar2(/*…*/ ) { /*…*/ } void pokaz( /*…*/) { /*..*/ }
public void podaj_typ(/*..*/) { /*….*/}
}
public class Towar extends Applet
{static void wyprowadz(Towar1 p,Graphics g, int a, int b ) { p.pokaz(g,a,b);
p. podaj_typ (g,a,b+20); } public void paint(Graphics g)
{ Towar2 p2 = new Towar2(20,"ksiazka",5);
Towar1 p1 = new Towar1(15,"kalendarz");
wyprowadz(p2,g,10,10); //ksiazka, 20 //5
// Typ produktu 2 wyprowadz(p1,g,10,50); // kalendarz, 15 } // Typ produktu 1 }
4. Zmień program 2 i przedefiniuj go tak, aby mógł być wykonany przez przeglądarkę i przez maszynę wirtualną Javy.
5. Zmień program 3 i przedefiniuj go tak, aby mógł być wykonany przez przeglądarkę i przez maszynę wirtualną Javy.