java12.pdf

(89 KB) Pobierz
Ćwiczenie 1:
Java – Aplety – pakiet AWT
Pakiet Abstract Windowing Toolkit (AWT) zawiera zestaw klas, służących do tworzenia
graficznego interfejsu użytkownika, nazywanego w skrócie GUI (Graphical User Interface).
Poszczególne elementy GUI to komponenty, takie jak przyciski, listy, etykiety czy pola wyboru.
Są one reprezentowane przez klasy wywodzące się z java.awt.Component.
Komponenty i kontenery
Elementy GUI dzielą się na komponenty (kontrolki, sterowniki) oraz kontenery, które są używane
do przechowywania innych elementów.
✔ przyciski (Button)
✔ płótna (Canvas)
✔ pola wyboru (Checkbox)
✔ etykiety (Label)
✔ paski przewijania (ScrollBar)
✔ listy (List)
✔ listy rozwijane ( Choice)
✔ polecenia menu ( MenuItem)
✔ komponenty tekstowe (TextField i TextArea)
✔ kontenery (Container)
✔ okna (Window)
✔ ramki (Frame)
✔ okna dialogowe (Dialog)
✔ dialogi plikowe (FileDialog)
✔ panele (Panel)
✔ okna przewijalne (ScrollPane)
Uwaga:
W klasie Component zdefiniowane są metody wspólne dla wszystkich komponentów. Metod tych
używa się do pobierania (get), ustawiania (set) i sprawdzania (is) właściwości komponentów AWT.
Więcej na www.java.sun.com
Graficzny interfejs użytkownika oprócz samego wyświetlania komponentów powinien reagować na
zdarzenia pochodzące od użytkownika. Źródłami i słuchaczami zdarzeń są obiekty
✔ zdarzenie (event) - obiekt "niosący" informację o stanie źródła
✔ źródło (source) - obiekt, który generuje zdarzenia
✔ słuchacz (listener) -obiekt powiadamiany o wystąpieniu zdarzenia.
Każdy obiekt-słuchacz, który ma reagować na zdarzenia musi spełniać dwa wymogi:
✔ musi być zarejestrowany na liście słuchaczy zdarzeń. Rejestracji dokonuje się za pomocą
metody addxxxListener(), wywoływanej na rzecz komponentu inicjującego zdarzenie,
gdzie "xxx" reprezentuje typ nasłuchiwanego zdarzenia;
✔ musi mieć zaimplementowany odpowiedni interfejs nasłuchu:
● ActionListener (dla przycisku i pola tekstowego),
● Adjusta ﱢ le (dla paska przewijania) oraz
● ItemListener (dla pól wyboru i list)
Java – Aplety – pakiet AWT
Klasa Button
Przyciski są jednym z najczęściej używanych komponentów graficznego interfejsu użytkownika.
Do tworzenia przycisków wykorzystuje się następujące konstruktory klasy Button:
✔ Button() - tworzy pusty przycisk (bez napisu)
✔ Button(String) - tworzy przycisk z napisem
Tekst na przycisku można ustawiać za pomocą metody
setLabel(String)
Pobieranie tekstu wyświetlanego na przycisku realizuje metoda
getLabel()
Rejestrowanie słuchacza zdarzeń akcji umożliwia metoda
addActionListener()
Wyrejestrowanie słuchacza zdarzeń akcji - metoda
removeActionListener()
Klasa Label
Klasa Label służy do tworzenia etykiet umożliwiających wyświetlanie tekstu (tylko jeden wiersz).
Etykiety są w zasadzie wykorzystywane do opisywania innych elementów apletu, więc tekst
wyświetlany na nich nie może być modyfikowany przez użytkownika.
Instrukcja tworząca etykietę ma postać:
Label lab = new Label("Etykieta", Label.CENTER);
add(lab);
Tekst umieszczony w etykiecie może być wyrównany do lewej, do prawej, lub wyśrodkowany za
pomocą stałych
✔ Label.LEFT,
✔ Label.RIGHT,
✔ Label.CENTER.
Komponenty tekstowe
Pola tekstowe i obszary tekstowe to podklasy klasy komponentu tekstowego - TextComponent.
Pola tekstowe - obiekty klasy TextField umożliwiają wprowadzanie i modyfikowanie tekstu, ale
ich rozmiar jest ograniczony do jednego wiersza.
Do wprowadzania większych, wielowierszowych tekstów stosuje się obszary tekstowe - obiekty
klasy TextArea.
Tworząc obszar tekstowy można dokładnie zaprojektować jego szerokość i wysokość, a także za
pomocą odpowiednich stałych wyposażyć go w żądane paski przewijania:
✔ TextArea.SCROLLBARS_BOTH
✔ TextArea.SCROLLBARS_HORIZONTAL_ONLY
✔ TextArea.SCROLLBARS_NONE
✔ TextArea.SCROLLBARS_VERTICAL_ONLY
1874596.001.png
Java – Aplety – pakiet AWT
Klasa Checkbox
Klasa Checkbox umożliwia wstawianie do apletów, lub aplikacji okienkowych pól umozliwiajacych
dokonanie wielokrotnego wyboru. Podstawowe metody klasy Checkbox:
✔ getCheckboxGroup() Pobiera informację, do jakiej grupy należy dane pole wyboru
✔ getLabel() Pobiera etykietę pola wyboru
✔ getSelectedObjects() Zwraca jednoelementowš tablicę zawierajšcš etykietę pola lub null
je�li pole nie jest zaznaczone
✔ getState() Sprawdza, czy pole jest zaznaczone
✔ setCheckboxGroup(CheckboxGroup g) Dodaje pole wyboru do podanej grupy
✔ setLabel(String etykieta) Ustawia etykietę pola wyboru
✔ setState(boolean stan) Ustawia stan pola wyboru
Klasa CheckboxGroup
To klasa, która ma możliwość łączenia w sobie obiektów klasy Checkbox, tak, aby możliwy był
tylko jednokrotny wybór.
Ćwiczenie 1:
Aplet z obiektami klasy checkbox.
import java.applet.Applet;
import java.awt.*;
public class checkpanels extends Applet {
checkboxpanel panel1, panel2, panel3;
public void init(){
setLayout(new GridLayout(1, 3));
panel1 = new checkboxpanel();
panel2 = new checkboxpanel();
panel3 = new checkboxpanel();
add(panel1);
add(panel2);
add(panel3);
}
}
class checkboxpanel extends Panel {
Checkbox check1, check2, check3, check4;
checkboxpanel(){
check1 = new Checkbox("1");
add(check1);
check2 = new Checkbox("2");
add(check2);
check3 = new Checkbox("3");
add(check3);
check4 = new Checkbox("4");
add(check4);
} }
1874596.002.png
Java – Aplety – pakiet AWT
Ćwiczenie 2:
Aplet zawierający klasę CheckboxGroup.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class radios extends Applet implements ItemListener {
CheckboxGroup checkboxgroup1;
Checkbox checkbox1, checkbox2, checkbox3, checkbox4, checkbox5;
TextField text1;
public void init(){
checkboxgroup1 = new CheckboxGroup();
checkbox1 = new Checkbox("1", false, checkboxgroup1);
add(checkbox1);
checkbox1.addItemListener(this);
checkbox2 = new Checkbox("2", false, checkboxgroup1);
add(checkbox2);
checkbox2.addItemListener(this);
checkbox3 = new Checkbox("3", false, checkboxgroup1);
add(checkbox3);
checkbox3.addItemListener(this);
checkbox4 = new Checkbox("4", false, checkboxgroup1);
add(checkbox4);
checkbox4.addItemListener(this);
checkbox5 = new Checkbox("5", false, checkboxgroup1);
add(checkbox5);
checkbox5.addItemListener(this);
text1 = new TextField(20);
add(text1);
}
public void itemStateChanged(ItemEvent e){
if(e.getItemSelectable() == checkbox1){
text1.setText("Radio button 1 clicked!");}
if(e.getItemSelectable() == checkbox2){
text1.setText("Radio button 2 clicked!"); }
if(e.getItemSelectable() == checkbox3){
text1.setText("Radio button 3 clicked!"); }
if(e.getItemSelectable() == checkbox4){
text1.setText("Radio button 4 clicked!"); }
if(e.getItemSelectable() == checkbox5){
text1.setText("Radio button 5 clicked!"); }
}
Ćwiczenie 3:
Program dodający do siebie dwie liczby
import java.applet.Applet;
import java.awt.*;
Java – Aplety – pakiet AWT
import java.awt.event.*;
public class adder extends Applet implements ActionListener {
TextField text1, text2, answertext;
Label pluslabel;
Button button1;
public void init(){
text1 = new TextField(10);
add(text1);
pluslabel = new Label("+");
add(pluslabel);
text2 = new TextField(10);
add(text2);
button1 = new Button("=");
add(button1);
button1.addActionListener(this);
answertext = new TextField(10);
add(answertext);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1){
int sum = Integer.parseInt(text1.getText()) + Integer.parseInt(text2.getText());
answertext.setText(String.valueOf(sum));
}
}
}
Ćwiczenie 4:
Aplet dodający – wersja 2.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class adder2 extends Applet implements ActionListener {
TextField text1, text2, answertext;
Label pluslabel, fill1, fill2, fill3, fill4, fill5,
fill6, fill7, fill8, fill9, fill10;
Label spacer1, spacer2, spacer3, spacer4, spacer5,
spacer6;
Button button1;
public void init(){
setLayout(new GridLayout(9, 3));
fill1 = new Label();
add(fill1);
text1 = new TextField(10);
add(text1);
fill2 = new Label();
add(fill2);
fill3 = new Label();
Zgłoś jeśli naruszono regulamin