Elementy interfejsu użytkownika


Etykiety - do wyświetlania tekstu, który nie ulega zmianie :


Przyciski - do wykonywania działań :


Pola wyboru - pozwalają włączać lub wyłączać różne opcje :


Przyciski opcji - pozwalają wybrać jedną z wielu opcji :


Pola list rozwijalnych - pozwalają wybrać element z dużej grupy :


Pola tekstowe - pozwalają wpisać linijkę tekstu :


Pola list - pozwalają na wybór jednej z wielu opcji :


Pola przewijania - do ustalania pewnej wartości z określonego przedziału


Pola edycji - pozwalają wpisać wiele linii tekstu :



Tworzenie elementów inerfejsu

Label etykieta;
etykieta = new Label("To jest tekst etykiety");
add(etykieta);


Menedżery położenia

FlowLayout - domyślny, elementy umieszczane są od lewej do prawej
Grid - applet podzielony jest na wiersze i kolumny, każdy element ma swoją komórkę
Border - applet podzielony jest na strefy N,E,W,S,Center
Card - elementy są umieszczane na kartach
GridBagLayout - dzielony na komórki, do elementów przypisane są "wagi"

Wybór menedżera

metoda : setLayout(.........)

Opis menedżerów

FlowLayout
public void init()
{
setLayout(new FlowLayout(FlowLayout.CENTER));
}

FlowLayout(wyrównanie,odstęp,odstęp);
wyrównanie
  • FlowLayout.LEFT
  • FlowLayout.CENTER
  • FlowLayout.RIGHT

    Grid
    public void init()
    {
    setLayout(new GridLayout(4,4); }

    GridLayout(wiersze,kolumny,odst_pion,odst_poz);

    Border
    public void init()
    {
    setLayout(new BorderLayout());
    }

    BorderLayout(odst_pion,odst_poz);

    add("North",element);

    Card

    setLayout(new CardLayout());

    GridBagLayout

    z każdym elementem jest skojarzony obiekt typu GridBagConstrains określający sposób wyświetlania elementu

    pola klasy
  • gridx,gridy - określają położenie komórki w lewym górnym rogu
  • gridwidth,gridheight - liczby komórek
  • weightx,weighty - wagi
  • ....

    Dodawanie elementów standardowych do appletu


    Dodawanie etykiet


    Label etykieta;
    etykieta = new Label("Tekst");
    add(etykieta);

    add(new Label("tekst",wyrównanie);

    wyrównanie
  • Label.LEFT
  • Label.CENTER
  • Label.RIGHT

    Dodawanie przycisków


    Button przycisk;
    przycisk = new Button("OK");
    add(przycisk);

    Dodawanie pól wyboru


    Checkbox pole;
    pole = new Checkbox("tekst",null,true);
    add(pole);

    Dodawanie przycisków opcji


    tworzymy CheckboxGroup();

    CheckbocGroup po;
    po = new CheckboxGroup();

    dodawanie pól
    add(new Checkbox("przycisk1",po,true);

    Dodawanie list rozwijalnych


    Choice lista;
    lista = new Choice();

    dodawanie do listy
    lista.addItem("pierwszy");

    Dodawanie pól tekstowych


    TextField pole;
    pole = new TextField("tekst",30);
    add(pole);

    TextField(tekst,max_liczba_znaków);

    pole.setEchoCharakter('*');


    Obsługa standardowych elementów


    public boolean action(Event z, Object arg)
    {
    // przetwarzanie zdarzeń }

    Event - przekazuje typ zdarzenia

    Object - przekazuje dodatkowe informacje

    z.target - przekazuje informacje o klasie elementu, który wygenerował zdarzenie

    public boolean action(Event z, Object arg)
    {
    if (z.target instanceof Checkbox)
    {}
    else
    if (z.target instanceof Choice)
    {}
    else
    if (z.target instanceof TextField)
    {}
    return true;
    }

    Etykiety - nie generują zdarzeń
    Przyciski - przekazują nazwę przycisku
    Pola wyboru - przekazują wartość logiczną
    Przyciski opcji - w Object umieszczają stan przycisków
    Pola list - przekazują łańcuch z nazwą wybranej opcji
    Pola tekstowe - powodują wygenerowanie zdarzenia w chwili wciśnięcia Enter, w Object przekazują pobrany tekst


    import java.applet.*;
    import java.awt.*;
    public class Interfejs extends java.applet.Applet
    {
    // pola danych
    Label etykieta;
    Button przycisk;
    Checkbox pole_w;
    Checkbox po1, po2, po3;
    CheckboxGroup grupa;
    Choice lista;
    TextField pole_t;

    // inicjacja
    public void init()
    {
    // ustawienie menedżera położenia
    setLayout(new FlowLayout(FlowLayout.LEFT));

    // utworzenie nowej etykiety
    // i dodanie jej do apletu
    etykieta = new Label("To jest statyczna etykieta");
    add(etykieta);

    // utworzenie nowego przycisku
    // i dodanie go do apletu
    przycisk = new Button("OK");
    add(przycisk);

    // utworzenie nowego pola wyboru
    // i dodanie go do apletu
    pole_w = new Checkbox("Pola wyboru przeznaczone są dla wartości logicznych");
    add(pole_w);

    // utworzenie grupy przycisków opcji
    // i dodanie jej do apletu
    grupa = new CheckboxGroup();
    po1 = new Checkbox("Przycisk1", grupa, true);
    po2 = new Checkbox("Przycisk2", grupa, false);
    po3 = new Checkbox("Przycisk3", grupa, false);
    add(po1);
    add(po2);
    add(po3);

    // utworzenie nowej listy
    // i dodanie jej do apletu
    Choice lista = new Choice();
    lista.addItem("jeden");
    lista.addItem("dwa");
    lista.addItem("trzy");
    lista.addItem("cztery");
    add(lista);

    // utworzenie nowego pola tekstowego
    // i dodanie go do apletu
    pole_t = new TextField(20);
    add(pole_t);
    }

    public boolean action(Event zdarzenie, Object arg)
    {
    if (zdarzenie.target instanceof Button)
    {
    System.out.print("Naciśnięty przycisk. Argument=");
    System.out.println(arg);
    }
    else
    if (zdarzenie.target instanceof Checkbox)
    {
    System.out.print("Zmienione pole wyboru. Nazwa=");
    // pobranie i wyświetlenie nazwy pola
    String x = ((Checkbox)zdarzenie.target).getLabel();
    System.out.print(x);
    // wyświetlenie argumentu (true lub false)
    System.out.print(" Argument=");
    System.out.println(arg);
    }
    else
    if (zdarzenie.target instanceof Choice)
    {
    System.out.print("Zmieniony stan listy. Argument=");
    System.out.println(arg);
    }
    else
    if (zdarzenie.target instanceof TextField)
    {
    System.out.print("Pole tekstowe. Argument=");
    System.out.println(arg);
    }
    return true;
    }
    }



    Dodawanie elementów rozszerzonych


    Listy


    public void init()
    {
    Lista lista;
    lista = new List(5,false);
    add(lista);
    }

    dodawanie pozycji na liście

    lista.addItem("pierwszy");

    Paski przewijania

    Scrollbar pasek;
    pasek = new Scrollbar(Scrollbar.HORIZONTAL,1,50,1,100);
    add(pasek);

    Pola edycji


    TextArea pole;
    pole = new TextArea("tekst",5,5);
    add(pole);


    Obsługa elementów rozszerzonych


    public boolean handleEvent(Event z)
    {
    if (z.target instanceof List)
    {}
    else
    if (z.target instanceof Scrollbar)
    {}
    else
    if (z.target instanceof TextArea)
    {}
    return true;
    }



    public boolean handleEvent(Event z)
    {
    if (z.target instanceof List)
    {
    String s = ((List)z.target).getSelectedItem();
    System.out.println(s);
    } return true;
    }


    import java.applet.*;
    import java.awt.*;

    public class Kontrolki extends java.applet.Applet
    {
    // pola danych
    List lista;
    TextArea pole_ed;
    Scrollbar pasek_poz, pasek_pion;

    // inicjacja
    public void init()
    {
    // ustawienie menedżera położenia
    setLayout(new FlowLayout(FlowLayout.LEFT));

    // utworzenie listy i dodanie jej do apletu
    lista = new List();
    lista.addItem("styczeń");
    lista.addItem("luty");
    lista.addItem("marzec");
    lista.addItem("kwiecień");
    lista.addItem("maj");
    lista.addItem("czerwiec");
    lista.addItem("lipiec");
    lista.addItem("sierpień");
    lista.addItem("wrzesień");
    lista.addItem("październik");
    lista.addItem("listopad");
    lista.addItem("grudzień");
    add(lista);

    // utworzenie pasków przewijania (pionowy i poziomy)
    // i dodanie ich do apletu
    pasek_poz = new Scrollbar(Scrollbar.HORIZONTAL, 1, 0, 1, 100);
    add(pasek_poz);
    pasek_pion = new Scrollbar(Scrollbar.VERTICAL, 1, 0, 1, 100);
    add(pasek_pion);

    // utworzenie nowego pola edycji
    pole_ed = new TextArea("Domyślny tekst", 10, 60);
    add(pole_ed);
    }


    public boolean handleEvent(Event zdarzenie)
    {
    if (zdarzenie.target instanceof List)
    {
    System.out.print("Zdarzenie związane z listą. Wybrano pozycję: ");
    String s = ((List)zdarzenie.target).getSelectedItem();
    System.out.println(s);
    }
    else
    if (zdarzenie.target instanceof Scrollbar)
    {
    System.out.print("Zdarzenie związane z paskiem przewijania. Wartość: ");
    int i = ((Scrollbar)zdarzenie.target).getValue();
    System.out.println(i);
    }
    else
    if (zdarzenie.target instanceof TextArea)
    {
    System.out.print("Zdarzenie związane z polem edycji. Tekst: ");
    String s = ((TextArea)zdarzenie.target).getText();
    System.out.println(s);
    }
    return true;
    }
    }