mgr Agnieszka Patyk, Wydział FTiMS, Politechnika Gdańska, 2007
WŁASNOŚCI KOMPONENTÓW I KONTENERÓW
Button / guzik
Przykłady konstruktorów:
Button b1=new Button(); //konstruktor pusty
Button b1=new Button("Guzik 1"); //podajemy napis na guziku Niektóre metody:
b1.setBackground( Color.blue ); //kolor tła
b1.setBackground( new Color(0,128,0) ); //również kolor tła
b1.setEnabled( false ); //zablokowanie guzika
b1.setVisible( false ); //guzik staje się niewidzialny
b1.setFont( new Font("Serif",Font.BOLD,14) ); //czcionka na guziku: Serif, pogrubiona, rozmiar 14
b1.setForeground(Color.red); //kolor napisu na guziku
b1.setLabel("moj guzik"); //ustawienie napisu na guziku
String napis_z_guzika = b1.getLabel(); //pobranie napisu z guzika
TextField / pole tekstowe
Przykłady konstruktorów:
TextField t1 = new TextField(); //konstruktor pusty
TextField t1 = new TextField(20); //szerokość na maksymalnie 20 znaków TextField t1 = new TextField("Hello", 20); //napis "Hello", szerokość na maksymalnie 20 znaków Niektóre metody:
t.setText( "to jest moj tekst" ); //ustawienie tekstu
String pobierz = t.getText(); //pobranie tekstu
int ile_znakow = t.getColumns(); //pobranie ilości znaków
t.setColumns(30); //ustawienie ilości znaków
Analogicznie jak dla guzika działają:
setFont, setBackground, setForeground, setEnabled, setVisible
Label / etykieta
Przykłady konstruktorów:
Label l1 = new Label(); //konstruktor pusty
Label l1 = new Label("napis"); //podajemy napis
//podajemy napis i wyjustowanie, oprócz CENTER mamy też LEFT i RIGHT: Label l1 = new Label("napis",Label.CENTER);
Niektóre metody:
int pobierz = l1.getAlignment(); //zwraca wyjustowanie
l1.setAlignment(Label.LEFT); //ustawia wyjustowanie
Analogicznie jak dla TextField działają:
setText, getText oraz setFont, setBackground, setForeground, setEnabled, setVisible TextArea / "dwuwymiarowe" pole tekstowe
Przykłady konstruktorów:
TextArea t1 = new TextArea(); //konstruktor pusty
TextArea t1 = new TextArea(20,30); //20 rzędów, 30 kolumn
TextArea t1 = new TextArea("Hello"); //podajemy tekst
TextArea t1 = new TextArea("Hello",20,30); //20 rzędów, 30 kolumn i dodatkowy tekst
//dodatkowo rodzaj scrollbarów:
TextArea t1 = new TextArea("Hello",20,30,TextArea.SCROLLBARS_BOTH);
mgr Agnieszka Patyk, Wydział FTiMS, Politechnika Gdańska, 2007
Rodzaje scrollbarów:
TextArea.SCROLLBARS_BOTH, TextArea.SCROLLBARS_HORIZONTAL_ONLY,
TextArea.SCROLLBARS_VERTICAL_ONLY , TextArea.SCROLLBARS_NONE
Niektóre metody:
t1.setText( "to jest moj tekst" );
String pobierz = t1.getText();
int ile_kolumn = t1.getColumns();
int ile_rzedow = t1.getRows();
t1.setColumns(30);
t1.setRows(20);
t1.insert("wstawiam tekst na pozycje 21",21);
t1.append("doklejam tekst na końcu");
t1.replaceRange("nowy tekst zamiast starego na pozycjach od 11 do 119", 11, 119) ; Analogicznie jak dla innych komponentów działają:
setFont, setBackground, setForeground, setEnabled, setVisible
Checkbox
Przykłady konstruktorów:
Checkbox c1 = new Checkbox(); //konstruktor pusty
Checkbox c1 = new Checkbox("Hello"); //napis obok checkboxa Checkbox c1 = new Checkbox("Hello",true); //dodatkowo stan początkowy Niektóre metody:
c1.setLabel( "to jest moj tekst na checkboksie" );
String pobierz_napis = c1.getLabel();
c1.setState(false);
boolean stan = c1.getState();
Analogicznie jak dla innych komponentów działają:
setFont, setBackground, setForeground, setEnabled, setVisible
Choice / coś w rodzaju ComboBoxa
Konstruktor:
Choice c1 = new Choice(); //konstruktor pusty
Niektóre metody:
c1.add("kolejna opcja");
int ile_elementow = c1.getItemCount();
String pierwszy_elem = c1.getItem(0);
String obecnie_wybrany_elem = c1.getSelectedItem();
c1.insert("opcja wstawiona na pozycje 4",4);
c1.remove(8);
c1.remove("napis do usuniecia");
c1.removeAll();
c1.select(8);
c1.select("napis do zaznaczenia");
Analogicznie jak dla innych komponentów działają:
setFont, setBackground, setForeground, setEnabled, setVisible
List / lista
Konstruktory:
List l1 = new List(); //konstruktor pusty
List l1 = new List(7); //liczba widzialnych linii
Niektóre metody:
l1.add("kolejna opcja");
mgr Agnieszka Patyk, Wydział FTiMS, Politechnika Gdańska, 2007
l1.add("kolejna opcja",7);
int ile_elementow = l1.getItemCount();
String pierwszy_elem = l1.getItem(0);
String obecnie_wybrany_elem = l1.getSelectedItem();
int obecnie_wybrany_elem = l1.getSelectedIndex();
l1.insert("opcja wstawiona na pozycje 4",4);
l1.remove(8);
l1.remove("napis do usuniecia");
l1.removeAll();
l1.select(8);
l1.deselect(8);
l1.select("napis do zaznaczenia");
boolean czy=l1.isIndexSelected(7);
l1.replaceItem("nowa opcja",5);
Analogicznie jak dla innych komponentów działają:
setFont, setBackground, setForeground, setEnabled, setVisible
Panel
Konstruktory:
Panel p = new Panel(); //konstruktor pusty
Panel p = new Panel(new FlowLayout()); //podajemy rodzaj kontenera
Niektóre metody:
p.add(new Button("guzik 1"));
p.setLayout(new GridLayout(2,5));
Analogicznie jak dla innych komponentów działają:
setFont, setBackground, setForeground, setEnabled, setVisible
Kontener FlowLayout
Przykłady konstruktorów:
FlowLayout f1=new FlowLayout(); //konstruktor pusty
FlowLayout f1=new FlowLayout(FlowLayout.LEFT); //do której strony równać komponenty
//dodatkowo odstępy w poziomie i w pionie:
FlowLayout f1=new FlowLayout(FlowLayout.LEFT,6,9);
Oprócz FlowLayout.LEFT mamy strony:
FlowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEADING, FlowLayout.TRAILING
Działanie: komponenty będą tak długo ustawiane w jednej linii, aż zabraknie miejsca i szerokość okna wymusi przejście do następnej linii.
Kontener GridLayout
Przykłady konstruktorów:
GridLayout g1=new GridLayout(); //konstruktor pusty
GridLayout g1=new GridLayout(4,7); //4 rzędy, 7 kolumn
GridLayout g1=new GridLayout(4,7,6,9); //dodatkowo odstępy w poziomie i w pionie Działanie: okno jest dzielone na równe części, komponenty są dodawane do kolejnych części, nie trzeba podawać do których.
Kontener BorderLayout
Przykłady konstruktorów:
BorderLayout b1=new BorderLayout(); //konstruktor pusty
BorderLayout b1=new BorderLayout(6,9); //odstępy w poziomie i pionie Działanie: okno jest podzielone na 5 regionów. Przy dodawaniu każdego komponentu trzeba podać też, w jakim regionie ten komponent ma się znaleźć, np:
mgr Agnieszka Patyk, Wydział FTiMS, Politechnika Gdańska, 2007
...
add(new Button("North"), BorderLayout.NORTH);
add(new CheckBox("South",true), BorderLayout.SOUTH);
add(new Label("East"), BorderLayout.EAST);
add(new List(6), BorderLayout.WEST);
add(new Choice(), BorderLayout.CENTER);
...
Uwaga! Do jednego kontenera można dodać drugi kontener (jako komponent) w celu lepszego rozmieszczenia komponentów na ekranie. Możliwa jest więc taka sytuacja:
...
GridLayout g_wewnetrzny_gorny = new GridLayout(3,4); //3 rzędy, 4 kolumny GridLayout g_zewnetrzny = new GridLayout(2,1); //2 rzędy, 1 kolumna
Panel p_gorny = new Panel();
Panel p_dolny = new Panel();
setLayout(g_zewnetrzny);
p_gorny.setLayout(g_wewnetrzny_gorny);
add(p_gorny);
add(p_dolny);
...
Efekt: zewnętrznym kontenerem jest g_zewnetrzny, a jego pierwszym komponentem jest p_gorny posiadający kontener g_wewnetrzny_gorny.