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;
}
}