Color.pink |
różowy |
Color.PINK |
różowy |
Color.red |
czerwony |
Color.RED |
czerwony |
Color.white |
biały |
Color.WHITE |
biały |
Color.yelIow |
żółty |
Color.YELLOW |
żółty |
Każdą z powyższych stałych można wykorzystać jako argument metody setCol or. Przykład (wyświetlenie napisu o zadanym kolorze):
import java.applet.*; import java.awt.*;
public
class Aplet extends Applet
Font sansSerif; public void i ni t()
{
sansSerif = new Font("SansSerif",
Font.BOLO, 36);
public void paint (Graphics gDC)
gDC.setColor(Color.GREEN); gOC.setFont(sansSerif); gDC.drawString ("Czcionka SansSerif", 60, 80);
}
Jeżeli przestawione wyżej kolory są niewystarczające, można jawnie utworzyć nowy obiekt klasy Col or i wykorzystać go jako argument metody setCol or. Wykorzystać można w tym celu jeden z dwóch konstruktorów:
Color(int rgb)
Color(int r, int g, int b)
Pierwszy przyjmuje kod koloru w 24-bitowym formacie RGB, przedstawiony w postaci liczby typu i nt. w której bity 0 - 7 określają wartość składowej R (w modelu RGB), bity 8-15 wartość składowej G, a bity 16 - 23 wartość składowej B. Drugi przyjmuje trzy argumenty, odpowiadające poszczególnym składowym RGB. Przykład:
import java.applet.*; import java.awt.*;
public
class Aplet extends Applet
{
Font sansSerif;
Color color; public void i ni t()
sansSerif = new Font("SansSerif", Font.BOLD, 36);
color = new Color(128, 255, 0);
public void paint (Graphics gDC)
gDC.setColor(color); gDC.setFont(sansSeri f); gDC.drawString ("Czcionka SansSerif", 60, 80);
Wyświetlanie plików graficznych
Wczytywanie obrazów graficznych umożliwia metoda klasy Appl et o nazwie get Image. Wczytuje ona wskazany w argumencie plik graficzny w jednym z formatów:
• GIF,
• JPG,
• PNG
oraz zwraca obiekt klasy Image, który może zostać wyświetlony na ekranie. Metoda get Image występuje w dwóch wersjach:
• getImage(URL url),
• getImage(URL url, String name). Pierwsza z nich przyjmuje jako argument obiekt klasy URL, bezpośrednio wskazujący na plik z obrazem, druga wymaga podania argumentu klasy URL, wskazującego na umiejscowienie pliku (np. http://host.domeM/java/obraq/), i drugiego — określającego nazwę pliku.
Jeśli obraz znajduje się w strukturze katalogów naszego serwera, wygodne jest użycie drugiej postaci konstruktora. Nie ma wtedy potrzeby tworzenia nowego obiektu klasy URL bezpośrednio. Zamiast tego wystarczy wywołać jedną z dwóch metod:
• getDocumentBaseO,
• getCodeBase().
Metoda getDocumentBase zwraca obiekt URL, wskazujący lokalizację dokumentu HTML, w którym znajduje się aplet.
WSPÓŁPRACA Z SYSTEMEM
Standardowy strumień wejściowy
Standardowy strumień wejściowy reprezentowany jest przez obiekt System, i n, czyli obiekt i n zawarty w klasie System. Jest to obiekt klasy I nputStream, reprezentującej strumień wejściowy. Metody udostępniane przez tę klasę zebrane są w poniższej tabeli:
Nazwa metody
int |
available() |
Zwraca liczbę bajtów, które mogą być odczytane ze strumienia. |
void |
close() |
Zamyka strumień i zwalnia związane z nim zasoby. |
void |
mark(int readlimit) |
Zaznacza bieżącą pozycję w strumieniu. |
boolean |
markSupported() |
Sprawdza, czy strumień może obsługiwać metody mark i reset. |
abstract int |
read() |
Odczytuje kolejny bajt ze strumienia. |
int |
read(byte[] b) |
Odczytuje ze strumienia liczbę bajtów nie większą niż rozmiar tablicy b. Zwraca faktycznie odczytaną liczbę bajtów. |
int |
read(byte[] b, int off, int len) |
Odczytuje ze strumienia liczbę bajtów nie większą niż wskazywana przez 1 en i zapisuje je w tablicy b. począwszy od komórki wskazywanej przez off. Zwraca faktycznie przeczytaną liczbę bajtów. |
void |
reset() |
Wraca do pozycji strumienia wskazywanej przez wywołanie metody mark. |
long |
skip(long n) |
Pomija w strumieniu liczbę bajtów wskazywanych przez n. Zwraca faktycznie pominiętą liczbę bajtów. |
natomiast getCodeBase lokalizację, w której znajduje się kod apletu.
Wyświetlenie obrazu odbywa się poprzez wywołanie metody
drawlmage w postaci:
gDC.drawImage (img, wspX, wspY, this); Argument img to referencja do obiektu klasy Image, zwrócona przez metodę get Image, wspX współrzędna x, a wspY współrzędna y, thi s referencja do obiektu klasy Appl et wywołującego metodę drawlmage. Przykład: import java.applet.*; import java.awt.*; public
class Aplet extends Applet {
Image img; public void i ni t()
{
img = getImage(getDocumentBase(), "Image.jpg");
}
public void paint(Graphics gDC)
{
gDC.drawImage (img, 20, 20, this);
24-bitowe kody wybranych kolorów (w postaci heksadecymalnej) oraz ich składowe RGB przedstawione są w poniższej tabeli:
Kolor |
R |
Składowe G |
B |
Kod koloru |
beżowy |
245 |
245 |
220 |
F5F5DC |
biały |
255 |
255 |
255 |
FFFFFF |
błękitny |
173 |
216 |
230 |
A0D8E6 |
brązowy |
165 |
42 |
42 |
A52A2A |
czarny |
0 |
0 |
0 |
000000 |
czerwony |
255 |
0 |
0 |
FFOOOO |
ciemnoczerwony |
139 |
0 |
0 |
8BOOOO |
ciemnoniebieski |
0 |
0 |
139 |
00008B |
ciemnoszary |
169 |
169 |
169 |
A9A9A9 |
ciemnozielony |
0 |
100 |
0 |
006400 |
fiolet |
238 |
130 |
238 |
EE82EE |
koralowy |
255 |
127 |
80 |
FF7F50 |
niebieski |
0 |
0 |
255 |
0000FF |
oliwkowy |
128 |
128 |
0 |
7F7F00 |
purpurowy |
128 |
0 |
128 |
7F007F |
srebrny |
192 |
192 |
192 |
COCOCO |
stalowoniebieski |
70 |
130 |
180 |
4682B4 |
szary |
128 |
128 |
128 |
7F7F7F |
zielony |
0 |
255 |
0 |
OOFFOO |
żółtozielony |
154 |
205 |
50 |
9ACD32 |
żółty |
255 |
255 |
0 |
FFFFOO |
String linę - brIn.readLine(); System.out.pri nt("Wprowadzony wiersz to: " + linę);
}
catch(IOException e){
System.out.println("BTąd podczas odczytu strumienia."); ł
)
new InputStreamReader(System.in)
System.out.print("Wprowadź liczbę: "); try{
strTok.nextToken();
}
catch(IOException e){
System.out.print("BTąd podczas odczytu danych ze strumienia."); return;
}
if(strTok.ttype I* StreamTokenizer.TT_NUMBER){
System.out.print("To nie jest prawidłowa liczba."); return;
)
double liczba * strTok.nval;
System.out.pri nt("Wprowadzona 1 i czba to " + liczba);
Rysowanie figur
Rysowanie figur geometrycznych umożliwiają wybrane metody klasy Graphi cs. Rysować można zarówno same kontury, jak i pełne figury wypełnione zadanym kolorem. W JDK zawarty jest pełny zestaw funkcji, pozwalających na tworzenie: linii. kół. elips i okręgów oraz wielokątów:
Typ zwracany |
Metoda |
Opis |
void |
drawLine(int xl, int yl, int x2, int y2) |
Rysuje linię, rozpoczynającą się w punkcie o współrzędnych x 1, y 1 i kończąq się w punkcie o współrzędnych x2, y2. |
void |
drawOval(int x, int y, int width, int height) |
Rysuje owal o kształcie wpisanym w prostokąt opisany parametrami x, y oraz widthiheight. |
void |
drawPol ygon (i nt [] xPoi nts, Rysuje wielokąt o punktach wskazywanych przez tablice xPoi nts i yPoi nts. i nt [] yPoints, int nPoints) Liczbę segmentów linii, z których składa się figura, wskazuje parametr nPoi nts. | |
void |
drawPolygon(Polygon p) |
Rysuje wielokąt opisany przez argument p. |
void |
drawPolyl ine(int[] xPoints, Rysuje sekwencję połączonych ze sobą linii o współrzędnych zapisanych w tablicach i nt [] yPoints, int nPoints) xPoi nts i yPoi nts. Liczba segmentów określona jest przez argument n Point. | |
void |
drawRect(int x, int y, int width, int height) |
Rysuje prostokąt zaczynający się w punkcie o współrzędnych x, y oraz szerokości i wysokości określonej przez argumenty width i height. |
void |
drawRoundRect(int x, int y, int width, int height, int arcUidth, int arcHeight) |
Rysuje prostokąt o zaokrąglonych rogach, zaczynający się w punkcie o współrzędnych x, y oraz szerokości i wysokości określonej przez argumenty wi dth i hei ght. Stopień zaokrąglenia rogów określany jest przez argumenty arcWi dth i arcHei ght. |
void |
fi 110val(int x, int y, int width, int height) |
Rysuje koło lub elipsę o kształcie wpisanym w prostokąt opisany parametrami x,y oraz width i hei ght. |
void |
fi 11 Pol ygon (i nt [] xPoi nts, Rysuje wypełniony bieżącym kolorem wielokąt o punktach wskazywanych przez i nt (] yPoints, int nPoints) tablice xPoi nts i yPoints. Liczbę segmentów linii, z których składa się figura, wskazuje parametr nPoi nts. | |
vo1d |
fi 11 Polygon(Polygon p) |
Rysuje wypełniony bieżącym kolorem wielokąt opisany przez argument p. |
void |
filiRect(int x, int y, int width, int height) |
Rysuje wypełniony bieżącym kolorem prostokąt, zaczynający się w punkcie o współrzędnych x, y oraz szerokości i wysokości określonej przez argumenty widthiheight. |
void |
fillRoundRect(int x, int y, 1nt width, int height, int arcWidth, int arcHeight) |
Rysuje wypełniony bieżącym kolorem prostokąt o zaokrąglonych rogach, zaczynający się w punkcie o współrzędnych x, y oraz szerokości i wysokości określonej przez argumenty wi dth i hei ght. Stopień zaokrąglenia rogów określany jest przez argumenty arcWi dth i arcHeight. |
Należy skorzystać z metody readLi ne klasy Buf feredReader. Aby utworzyć obiekt tej klasy, powiązany ze standardowym strumieniem wejściowym System, i n, trzeba utworzyć dodatkowo obiekt pośredniczący klasy InputStreamReader. stosując konstrukcję:
BufferedReader brln = new BufferedReader( new InputStreamReader(System.in)
Przykład:
public static void main(String args[])
BufferedReader brln = new BufferedReader(
new InputStreamReader(System.in)
System.out.pri nt1n("Wprowadź wi ersz tekstu zakończony znakiem Enter:"); try{
Do wprowadzania wartości liczbowych można z powodzeniem zastosować klasę StreamTokeni zer, która dzieli strumień wejściowy na jednostki leksykalne, czyli tokeny. Posiada ona pole o nazwie nval, które zawiera wartość aktualnego tokena w postaci liczby typu doubl e. oczywiście o ile ten token jest liczbą. Typ tokena można rozpoznać, odczytując stan pola ttype, które może przyjmować następujące wartości:
• StreamTokeni zer.TT_E0F — osiągnięty został koniec
strumienia,
• StreamTokeni zer. TT_E0L — osiągnięty został koniec
wiersza.
• StreamTokeni zer. TT_NUMBER — token jest liczbą.
• StreamTokeni zer. TT WORD — token jest słowem.
Przykład:
import java.io.*; public class Main
public static void main(String args[])
StreamTokenizer strTok ■ newStreamTokeni zer( new BufferedReader(
Helion Wydawnictwo Helion
■■ JHH e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek) Informatyka w najlepszym wydaniu
Zamów najnowszy katalog: http://helion.pl/katalog Zamów informacje o nowościach: http://helion.pl/nowosci Zamów cennik: http://helion.pl/cennik Aby ocenić tę tablicę, zajrzyj pod adres: http://helion.pl/user/opiniePtijava
ISBN 83-7361-559-8
9788373 615595