Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory



Podobne dokumenty
Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

Programowanie komputerów Wykład 6: Aplety Java

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Programowanie obiektowe

Język Java. Rysowanie GUI Określanie wyglądu komponentów

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy Swing. Tomasz Borzyszkowski

Java. Wykład 9. Piotr Tronczyk

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

MODELE KOLORÓW. Przygotował: Robert Bednarz

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Języki programowania wysokiego poziomu. CSS Wskazówki

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

Tworzenie elementów graficznych

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Tworzenie i edycja dokumentów w aplikacji Word.

Grafika 3D program POV-Ray - 1 -

Programowanie obiektowe

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Podstawy programowania GUI niskiego poziomu. APLETY.

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Rozdział 4 KLASY, OBIEKTY, METODY

Pascal - grafika. Uruchomienie trybu graficznego. Moduł graph. Domyślny tryb graficzny

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe

Komputerowy skład w L A T E X

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

Ćwiczenia 9 - Swing - część 1

Podstawy edycji tekstu

Programowanie Multimediów JAVA. wprowadzenie do programowania (2/3) [1]

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Aplikacje w środowisku Java

Kurs WWW. Paweł Rajba.

Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

Logo cz pl Zasady stosowania logotypów

Programowanie w Internecie. Java

enova Systemowe Kolorowanie list

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie obiektowe zastosowanie języka Java SE

Klasy abstrakcyjne i interfejsy

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

1.2 Logo Sonel podstawowe załoŝenia

1 Atrybuty i metody klasowe

Języki i metody programowania Java. Wykład 2 (część 2)

Informacje o pakiecie Office 2010

Kurs programowania 2 - listy

Przewodnik po soczewkach

Lab 9 Podstawy Programowania

Język Java część 2 (przykładowa aplikacja)

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

I. Formatowanie tekstu i wygląd strony

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

Dokumentacja do API Javy.

Tworzenie szablonów użytkownika

Builder (budowniczy) Cel: Przykład:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Visual Studio instalacja

Dodanie nowej formy do projektu polega na:

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Programowanie obiektowe

Formatowanie tekstu przy uz yciu stylo w

Podstawy technologii WWW

Język Java część 2 (przykładowa aplikacja)

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Microsoft Small Basic

Wprowadzenie do projektu QualitySpy

Edytor tekstu OpenOffice Writer Podstawy

Janusz Ganczarski. OpenGL Pierwszy program

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Kolory elementów. Kolory elementów

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class

PARADYGMATY PROGRAMOWANIA Wykład 4

Podstawowe części projektu w Javie

Multimedia JAVA. Historia

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Język JAVA podstawy. Wykład 5, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

INFORMATYKA KLASA IV

Komputerowe systemy na rynkach finansowych. wykład 5. MQL4 - funkcje operujące na obiektach wykresu

Rozdział 1. Wstęp 5. Rozdział 2. Pierwsze kroki 13. Rozdział 3. Podstawy rysunku wektorowego 35

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa 4 Wymagania edukacyjne na poszczególne oceny szkolne dla klasy 4

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Rozszerzenia i specyfikacja przyjmowanych przez nas plików.

Podstawy Języka Java

Programowanie obiektowe

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

Transkrypt:

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI Opracował: mgr inż. Przemysław Pardel, dr hab. Bogdan Kwolek v1.01 2010 Grafika i komunikacja człowiek komputer Laboratorium Część 3: Tekst, czcionki, kolory ZAGADNIENIA DO ZREALIZOWANIA (2H) 1. Tekst i czcionki... 2 1.1 Tworzenie obiektu Font... 2 1.2 Wyświetlanie znaków i łańcuchów tekstowych... 2 Przykład 1 do zrealizowania... 3 Przykład 2 do zrealizowania... 3 1.3 Odszukiwanie informacji dotyczących czcionek... 4 Przykład 3 do zrealizowania... 4 2. Kolory... 4 2.1 Zastosowanie obiektu Color... 5 2.2 Testowanie i ustawianie bieżącego koloru... 5 Przykład 4 do zrealizowania... 7 Przykład 5 do zrealizowania... 8

1. TEKST I CZCIONKI Obiekty klasy java.awt.font pozwalają na wywoływanie metody drawstring() z wykorzystaniem różnych czcionek. Obiekt Font reprezentuje nazwę, styl i rozmiar czcionki. Inna klasa, FontMetrics, udostępnia metody pozwalające na określenie rozmiarów znaków wyświetlanych przy użyciu określonej czcionki, co można wykorzystać przy takich operacjach jak formatowanie lub centrowanie tekstu. 1.1 TWORZENIE OBIEKTU FONT Obiekt Font można utworzyć, przekazując do jego konstruktora trzy parametry: nazwę czcionki, styl czcionki, rozmiar czcionki (w punktach). Nazwa czcionki może być podana wprost, jak np. Arial czy Garamond Old Style określona czcionka będzie użyta pod warunkiem, że czcionka o podanej nazwie jest zainstalowana w systemie, w którym uruchamiana jest aplikacja Java. W języku Java dostępnych jest również kilka czcionek wbudowanych. Są to TimesRoman, Helvetica, Courier, Dialog oraz DialogInput. W języku Java 2 nazwy czcionek TimesRoman, Helvetica i Courier powinny być zamienione odpowiednio na serif, sanserif oraz monospaced. Są to ogólne nazwy, które określają style czcionek bez podawania określonej rodziny czcionek je reprezentujących. Jest to rozwiązanie optymalne, ponieważ na niektórych platformach obsługujących język Java pewne rodziny czcionek mogą być nieobecne. W takim przypadku zostanie użyta czcionka, która jest najbardziej zbliżona do określonego stylu (np. serif). Trzy spośród dostępnych stylów czcionek mogą być wybrane przy użyciu predefiniowanych stałych: Font.PLAIN, Font.BOLD oraz Font.ITALIC. Odpowiadają im określone wartości całkowite, dzięki czemu można łączyć style uzyskując np. pochyloną czcionkę wytłuszczoną. Ostatnim parametrem konstruktora obiektu Font() jest rozmiar czcionki podawany w punktach. Poniższe polecenie tworzy obiekt Font reprezentujący 24-punktową, pochyloną i wytłuszczoną czcionkę Dialog: Font f = new Font( Dialog, Font.BOLD + Font.ITALIC,24); 1.2 WYŚWIETLANIE ZNAKÓW I ŁAŃCUCHÓW TEKSTOWYCH Do ustawiania bieżącej czcionki służy metoda setfont() wywoływana z obiektem Font jako parametrem na rzecz obiektu klasy Graphics. Poniższe polecenie ustawia bieżącą czcionkę reprezentowaną przez obiekt klasy Font o nazwie ft: screen.setfont(ft); Tekst w oknie apletu może być wyświetlany przy użyciu metody drawstring(). Metoda drawstring() używa bieżącej czcionki do wyświetlania tekstu. Jeżeli żadna czcionka nie została jawnie wybrana, to zostanie użyta czcionka domyślna. W dowolnej chwili można ustawić nową czcionkę, wywołując metodę setfont().

PRZYKŁAD 1 DO ZREALIZOWANIA public void paint(graphics comp){ Graphics2D comp2d = (Graphics2D) comp; Font f = new Font("TimesRoman", Font.PLAIN, 72); comp2d.setfont(f); comp2d.drawstring("przykładowy napis.", 10, 100); Jak łatwo się domyśleć, ostatnie dwa parametry wywołania metody drawstring() to współrzędne miejsca (x oraz y). W miejscu tym należy rozpocząć wyświetlanie tekstu. Współrzędna x określa lewą krawędź wyświetlanego tekstu, a współrzędna y definiuje położenie linii bazowej wyświetlanego tekstu. PRZYKŁAD 2 DO ZREALIZOWANIA import java.awt.font; import java.awt.graphics; public class ManyFonts extends java.applet.applet { public void paint(graphics g) { Font f = new Font("TimesRoman", Font.PLAIN, 18); Font fb = new Font("TimesRoman", Font.BOLD, 18); Font fi = new Font("TimesRoman", Font.ITALIC, 18); Font fbi = new Font("TimesRoman", Font.BOLD + Font.ITALIC, 18); g.setfont(f); g.drawstring("this is a plain font", 10, 25); g.setfont(fb); g.drawstring("this is a bold font", 10, 50); g.setfont(fi); g.drawstring("this is an italic font", 10, 75); g.setfont(fbi); g.drawstring("this is a bold italic font", 10, 100);

1.3 ODSZUKIWANIE INFORMACJI DOTYCZĄCYCH CZCIONEK Do wyszukiwania informacji dotyczących bieżącej czcionki (takich jak np. wysokość czy szerokość wyświetlanych znaków) można wykorzystać klasę FontMetrics. Aby skorzystać z jej metod, obiekt FontMetrics musi być utworzony przy użyciu metody getfontmetrics(), która pobiera tylko jeden parametr obiekt klasy Font. Poniższy przykład wyświetla wyśrodkowały test: PRZYKŁAD 3 DO ZREALIZOWANIA import java.awt.font; import java.awt.graphics; import java.awt.fontmetrics; public class Centered extends java.applet.applet { public void paint(graphics g) { Font f = new Font("TimesRoman", Font.PLAIN, 36); FontMetrics fm = getfontmetrics(f); g.setfont(f); String s = "Wysrodkowany tekst."; int xstart = (getsize().width - fm.stringwidth(s)) / 2; int ystart = getsize().height / 2; g.drawstring(s, xstart, ystart); 2. KOLORY Wyświetlanie elementów graficznych w apletach i aplikacjach przy użyciu pełnej gamy kolorów umożliwiają klasy Color oraz ColorSpace zawarte w pakiecie java.awt. Klasy te pozwalają na wybieranie koloru dla poszczególnych operacji graficznych, jak również na wybór koloru tła okna apletu czy aplikacji, a także na translację kolorów z jednego systemu opisu kolorów na inny. Domyślnie, w języku Java używany jest system opisu kolorów nazywany srgb. Zgodnie z jego definicją dany kolor jest opisywany poprzez trzy parametry określające zawartość tworzących go kolorów składowych RGB (z ang. R - red, B - blue, G - green). Zawartość poszczególnych składników jest reprezentowana przez liczbę z zakresu od 0 do 255. Przykładowo, kolorowi czarnemu odpowiadają wartości RGB 0, 0, 0, a kolorowi białemu wartości RGB 255, 255, 255 maksymalna zawartość poszczególnych kolorów składowych. System srgb umożliwia również opisywanie kolorów składowych za pomocą trzech liczb dziesiętnych z zakresu od 0 do 1. Obydwie konwencje zapisu srgb pozwalają na odzwierciedlenie w języku Java ponad 16 milionów kolorów.

System opisu kolorów może być również nazywany przestrzenią kolorów, a srgb jest tylko jedną z wielu istniejących przestrzeni kolorów. Inną przestrzenią kolorów jest np. CMYK system opisu kolorów stosowany w drukarkach, odzwierciedlający poszczególne kolory za pomocą zawartości kolorów składowych: C - cyan, M - magenta, Y - yellow oraz K - black. Wersja l.2 języka Java pozwala na stosowanie dowolnej przestrzeni kolorów pod warunkiem, że zostanie utworzony obiekt ColorSpace definiujący żądany system opisu kolorów. Java umożliwia również konwersję z dowolnej przestrzeni kolorów do systemu srgb i na odwrót. Wewnętrzna interpretacja kolorów w języku Java jest oparta na schemacie srgb jest to domyślna przestrzeń kolorów stosowana w programach. Urządzenia wyjściowe, jak np. monitory czy drukarki, używają zazwyczaj swoich własnych przestrzeni kolorów. Może się zdarzyć, że urządzenie wyjściowe nie obsługuje koloru zdefiniowanego w przestrzeni kolorów używanej przez aplikację. W ta-kim przypadku zostanie użyty kolor najbardziej zbliżony do żądanego, bądź zostanie zastosowana tzw. rasteryzacja (z ang. dithering), która umożliwi uzyskanie zbliżonego koloru poprzez raster złożony z kolorów dostępnych w przestrzeni kolorów danego urządzenia wyjściowego. Opisywana sytuacja najczęściej zdarza się w przeglądarkach sieci WWW, gdzie brakujący kolor jest uzyskiwany poprzez zastosowanie rastra złożonego z dwóch lub więcej kolorów składowych. Praktyka zarządzania kolorami uczy, że kolor zdefiniowany w przestrzeni srgb będzie niedostępny na zdecydowanej większości urządzeń wyjściowych. Jeżeli zadanie wymaga bardzo precyzyjnej kontroli kolorów, należy skorzystać z możliwości jakie daje ColorSpace i inne klasy z pakietu java.awt.color wprowadzonego w języku Java 2. Jednak dla większości aplikacji domyślny system opisu kolorów (srgb) będzie w zupełności wystarczający. 2.1 ZASTOSOWANIE OBIEKTU COLOR Aby ustawić bieżący kolor dla operacji graficznych, należy utworzyć obiekt klasy Color opisujący taki kolor albo skorzystać z jednego ze standardowych kolorów zdefiniowanych w klasie Color. W celu zdefiniowania żądanego koloru należy skorzystać z konstruktora klasy Color, wywołując go na jeden z dwóch sposobów: używając trzech liczb całkowitych reprezentujących składowe srgb definiowanego koloru, używając trzech liczb dziesiętnych reprezentujących składowe srgb definiowanego koloru. Składowe definiowanego koloru mogą być określone przy użyciu trzech wartości typu int lub typu float. Poniższe polecenia ilustrują takie dwa przypadki: Color c1 = new Color(255, 204, 102); Color c2 = new Color(0.807F, 1F, 0F); 2.2 TESTOWANIE I USTAWIANIE BIEŻĄCEGO KOLORU Bieżący kolor dla operacji graficznych jest określany poprzez wywołanie metody setcolor(). Metoda ta musi być wywoływana na rzecz obiektu klasy Graphics lub Graphics2D reprezentującego obszar rysowania. Jednym ze sposobów wyboru bieżącego koloru jest zastosowanie jednego ze standardowych kolorów zdefiniowanych jako zmienne klasy Color. Poniżej przedstawiono listę predefiniowanych kolorów reprezentowanych przez zmienne klasy Color (w nawiasach podano odpowiadające im wartości składowych srgb): black (0, 0, 0) magenta (255, 0, 255) blue (0, 0, 255)

orange (255, 200, 0) cyan (0, 255, 255) pink (255, 175, 175) darkgray(64, 64, 64) red (255, 0, 0) gray(128, 128, 128) white (255, 255, 255) green (0, 255, 0) yellow (255, 255, 0) lightgray (192, 192, 192) Poniższe polecenie wybiera jeden z predefiniowanych kolorów jako bieżący kolor dla obiektu comp2d: comp2d.setcolor(color.pink); Kolor tła dla składnika takiego jak okno apletu czy ramka, może zostać ustawiony poprzez wywołanie na rzecz takiego składnika metody setbackgroud() bądź setforeground(). Metoda setbackground() ustawia kolor tła danego składnika. Pobiera ona tylko jeden argument, którym jest obiekt klasy Color: setbackground(color.white); Java udostępnia dodatkowo metodę setforeground(), która jest wywoływana na rzecz danego składnika interfejsu użytkownika (zamiast na rzecz obiektu klasy Graphics). Działa ona w ten sam sposób jak metoda setcolor(), z tym, że zmienia kolor składnika interfejsu, takiego jak przycisk lub okno. Metoda setforegrounnd() może być wykorzystana w ciele metody init() do ustawiania koloru dla operacji graficznych. Raz ustawiony kolor jest używany dopóty, dopóki nie zostanie przy użyciu metody setforeground() lub setcolor() zastąpiony przez inny kolor. Jeżeli chcemy sprawdzić, jaki kolor jest ustawiony jako domyślny, powinniśmy skorzystać z metody getcolor() wywoływanej na rzecz obiektu klasy Graphics lub z metod getforeground() albo getbackground() wywoływanych na rzecz danego składnika. Poniższe polecenie ustawia bieżący kolor obiektu klasy Graphics2D o nazwie comp2d na taki sam kolor jak kolor tła składnika: comp2d.setcolor(getbackground());

PRZYKŁAD 4 DO ZREALIZOWANIA import java.awt.graphics; import java.awt.color; public class ColorBoxes extends java.applet.applet { public void paint(graphics g) { int rval, gval, bval; for (int j = 30; j < (size().height-25); j += 30) for (int i = 5; i < (size().width-25); i += 30) { rval = (int)math.floor(math.random()* 256); gval = (int)math.floor(math.random()* 256); bval = (int)math.floor(math.random()* 256); g.setcolor(new Color(rval,gval,bval)); g.fillrect(i, j, 25, 25); g.setcolor(color.black); g.drawrect(i-1, j-1, 25, 25); Rysunek 1: Przykład 4.

PRZYKŁAD 5 DO ZREALIZOWANIA Utworzyć aplet lub aplikację Java i narysować kształty przedstawione poniżej. Pod każdym z kształtów powinien pojawić się napis informujący o tym jaka funkcja posłużyła nam do narysowania kształtu Każdy kształt powinien posiadać inny kolor