APPLET KAVRAMI ve GRAFİKSEL ÇİZİM UYGULAMLARI



Benzer belgeler
Java da İstemci Tarafı Uygulamalar

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Nesneye Yönelik Programlama-JAVA (S flar), Ders sorumlusu Yrd.Doç.Dr.Hilmi KU ÇU

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yrd. Doç. Dr. Caner ÖZCAN


Programlama Dillerinde Kullanılan Veri Tipleri

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Java Programlamada Paket Yapısı Ve Import

MOBİL UYGULAMA GELİŞTİRME

HTML Sayfaları. Bütün html sayfaları

Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar.

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Data Structures Lab Güz

Pro/E. Sketch ( Taslak Çizim) Ortamı

Üst Düzey Programlama

Css Stillerinin Nesneyi Etkileme Yolları Ve Sırası, Diez, Nokta, Yıldız, Class Css De Neyi İfade Eder.

Java Appletlerine Giriş

MOBİL UYGULAMA GELİŞTİRME


Android Ders Notları

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

AÇILIŞ EKRANI. Açılış ekranı temelde üç pencereye ayrılır:

HSancak Nesne Tabanlı Programlama I Ders Notları

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Dr. Fahri Vatansever GRAFİK. 6. Hafta GRAFİK MODU. x x (0,0) (x,y) piksel (pixel) EKRAN. (Xmax,Ymax)

Java Programlamaya Giriş

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

ÖNDER BİLGİSAYAR KURSU. Microsoft Office Kursu Eğitim İçeriği

PARÇA MODELLEMEYE GİRİŞ

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

ASP.NET ile Bir Web Sitesi Oluşturma

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

1. MİCROSOFT EXCEL 2010 A GİRİŞ

Windows 10 için Java JDK 8 ve NetBeans IDE 8.2 Kurulumu Detaylı Anlatım

Luca NET Kobi Ticari Yazılımında ilk yapılacaklar

Öğr. Gör. Serkan AKSU 1

4. Bölüm Programlamaya Giriş

Kullanım Kılavuzu

2. HTML Temel Etiketleri

Java JDK (Java Development Kit) Kurulumu:

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

3. Metin ve Görünüm Etiketleri

GtkD ile Görsel Programlama

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN

WEB TASARIMI. Đnternet Nedir?


SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

Web sayfalarında yapılan her çalışma ve düzenleme tablolar aracılığı ile yapılır. Dolayısıyla çoğu web sayfalarında tablo kullanmak zorunluluktur.

BİLGİSAYAR DESTEKLİ TASARIM 1. HAFTA

Arayüz Geliştirme Dokümantasyonu

Temel Bilgisayar Terimleri Yrd. Doç. Dr. Devkan Kaleci

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

EKOM WEB DESIGNER PROGRMI KULLANMA KILAVUZ. 1 - Web Sayfası Tasarımı Oluşturma / Var Olan Tasarımı Açma:

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

Ekran 1 : Font Komutları Dosyası ekranı

Üst Düzey Programlama

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

UZAKTAN EĞİTİM YÖNETİM SİSTEMİ (MMYO)EĞİTMEN YARDIM KILAVUZU

JAVA PROGRAMLAMAYA GİRİŞ

Sunum İçeriği. Programlamaya Giriş

4.1. Grafik Sihirbazını kullanarak grafik oluşturma

T.C. istanbul ÜNiVERSiTESi ÖĞRENCi BiLGi SiSTEMi. ÖĞRETiM ELEMANI KULLANIM KILAVUZU

Java Programlama Giriş

BÖLÜM ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME

MATLAB DE 2 BOYUTLU GRAFİK TÜRLERİ

Java da. ve AWT ve SWING Kütüphaneleri. BBS-515 Nesneye Yönelik Programlama. Ders #8 (9 Aralık 2009)

BİLGİSAYAR DESTEKLİ TASARIM (TEKNİK RESİM-II) Yrd.Doç.Dr. Muhammed Arslan OMAR

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

WEB TASARIMIN TEMELLERİ

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

DIV KAVRAMI <style> position: absolute

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

5. Tablo İşlemleri. Bu bölümü bitirdiğinizde,

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

Skecher (Çizim) Komutları

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

GRAFİK KÜTÜPHANESİNİN DEVC++ PLATFORMUNA EKLENMESİ VE KULLANILMASI. (Windows 7, 8 ve 10 için) A. Platformun Kurulması ve Kütüphanenin Eklenmesi

Transkript:

APPLET KAVRAMI ve GRAFİKSEL ÇİZİM UYGULAMLARI Hedefler Bu üniteyi çalıştıktan sonra; Applet kavramını öğreneceksiniz, Java grafik eksenini tanıyacaksınız, Grafiksel çizim komutlarını öğreneceksiniz, Renk komutlarını öğreneceksiniz,

2 Adapazarı Meslek Yüksekokulu Java Programlama İçindekiler APPLET KAVRAMI ve GRAFİKSEL ÇİZİM UYGULAMLARI Giriş Applet Applet Metotları Not defteri ile Applet uygulaması geliştirme aşamaları Eclipse ile Applet uygulaması geliştirme aşamaları Grafiksel Uygulamalar Java Grafik Ekseni Çizimler (Doğru, dikdörtgen, Daire, Yay Çizimleri) Renk Komutları Font Ayarları Konu Özeti

Appletler 3 APPLET KAVRAMI ve GRAFİKSEL UYGULAMALAR GİRİŞ Appletler, başka bir uygulamanın (genellikle bir web tarayıcı) içerisinde java kodunu çalıştırmanın farklı bir yoludur. Başka bir ifade ile bir applet, web üzerinde dinamik olarak çalışan küçük bir program parçasıdır. Java kodlarını çalıştırabilen bir web tarayıcı (browser) ile java applet çalıştırılabilir. Bilgisayarlarda yaygın olarak kullanılan web tarayıcılardan bazıları; Internet Explorer, Mozilla Firefox, Safari, Opera ve Netscape gibi programlardır. Java applet, html dilinin zamanla internet üzerinde yetersiz kalmasından dolayı geliştirilmiştir. Applet programları, Internet, TV ve cep bilgisayarların yazılımında, web tabanlı uzaktan eğitimde, sanal derslerin hazırlanmasında yaygın olarak kullanılmaktadır. Bir applet, java.applet.applet yada javax.swing.japplet sınıfının bir alt sınıfı olmalıdır. Applet yada JApplet sınıfı aplet uygulaması ile web tarayıcı arasında bir arabirim işlevi görür. Eğer grafiksel ara yüze sahip uygulama bir applet uygulaması ise applet paketini de (import java.applet.applet; ya da import javax.swing.japplet;) program başında import etmemiz (çağırmamız) gerekir. Bir html sayfasında Java applet uygulamasını çalıştırmak istiyorsanız; <applet>.. </applet> tagları arasına dosya adını, uzantısı *.class olacak şekilde yazmak gerekir. Bir html kodunda, <html>, </html> tagları arasına java applet kodumuzu gömmek için; Sayfa 3

4 Adapazarı Meslek Yüksekokulu Java Programlama <applet code= applet_adı.class width=değer height=değer> </applet> yapısını kullanırız. Burada; width pencerenin enini, height yüksekliğini pixel(görüntü noktası) olarak vermektedir. Not: Applet kodlarının çalışabilmesi için bilgisayarda java programının yüklü olması gerekir. JAVA APPLET OLUŞTURMA VE ÇALIŞTIRMA Şunu unutmayalım ki; bir applet kodunun main() metodu olmadığı için bir uygulama başlatamaz. Applet kodunun herhangi bir şey yapabilmesi için applet metodunu çağırıp, çalıştıracak uygulama programlarına ihtiyaç vardır, bu amaçla web tarayıcı programları yada appletviewer programı kullanılır. Diğer bir ifade ile bir Java Appleti, appletviewer programı veya html (web) dosyası ile çalıştırılabilir. Applet Metotları Bir Appletin Yaşam Döngüsü: Bir Appletin çalışması/yaşam döngüsü boyunca web tarayıcı tarafından bazı metotlar ( init, start, stop, destroy ) çağrılır. Appletin çalışması süresince meydana gelecek olaylara bu metotlar sayesinde tepki verebilen uygulamalar geliştirmek mümkündür. Bu metotlardan bazıları şunlardır; public void init() - Tarayıcı (browser), Applet i yükledikten sonra çağrılır. Java kodundaki main() methodunun yerini appletlerde init() metodu alır. Public void start() - Tarayıcı, Applet i her gösterişinde bu metodu çağırır. Public void stop() - Tarayıcı, başka bir sayfaya her geçişte bu metodu çağırır. Örneğin, sayfadan ayrılma veya sayfanın küçültülmesi durumları public void destroy() Tarayıcı, Applet i devreden çıkarırken bu metodu çağırır. Örneğin, tarayıcı penceresinin kapatılması gibi. Bu metottan önce stop( ) metodu çağrılır. Public void paint() Grafiksel ekrana yazı yazmak, çizimler yapmak için, paint() metodunu kullanırız. Public void actionperformed(actionevent e) Appletimizde her olay olduğunda otomatik olarak çağrılır. Java applet program kodunun başlangıcında iki önemli paketi import etmek (çağırmak) gerekir. Grafiksel ara yüz için java.awt (veya javax.swing) ve applet sınıfı için gerekli olan java.applet paketini/kütüphanesini çağırmamız gerekir.

Appletler 5 Eğer Jcreator, NetBeans, Eclipse gibi bir editör programı kullanıyorsanız bu eklentileri (java.awt ve java.applet) program kendisi otomatik olarak ekleyecektir. Applet oluşturma ve çalıştırma işlemini farklı yollarla gerçekleştirelim. I. Notepad Benzeri Editör Program İle Applet kodunu yazıp çalıştırmak; 1) Programı aşağıdaki gibi Notepad ya da Wordpad benzeri bir metin editörü ile yazarız. Burada, program başında grafiksel ara yüzü çağırmak için import java.awt.*;, Java applet paketini çağırmak için import java.applet.*; kod satırları mutlaka yazılır. Eğer sınıf Applet yerine JApplet den türetilecekse o zaman program başında import javax.swing.japplet; yazmak gerekir. Grafiksel ekrana yazı yazmak için, Applet in paint metodunu kullanırız. Burada, Graphics sınıfının, drawstring metodu ile Merhaba Java!! ifadesi ekrana yazdırıldı. Oluşturduğumuz applet adını (Merhaba) public class Merhaba extends Applet kod satırı ile belirtiyoruz ve.java uzantılı dosyamızın adı (Merhaba.java) ile applet sınıfının (class Merhaba) adının aynı olmasına dikkat ediyoruz. 2) Yazdığımız programı derliyoruz. Böylelikle;.java uzantılı dosyanın.class uzantılı dosyası (Merhaba.class) oluşturulur. 3) Web tarayıcısında yazdığımız programın sonucunu görebilmemiz için html dosyası oluştururuz. Html dosyasını aşağıdaki gibi oluşturup,.htm veya.html (Merhaba.html) uzantılı olarak kaydederiz. Bu html dosyası ile applet in class dosyasının (Merhaba.class) aynı dizinde/klasörde olmasına dikkat ediniz. Sayfa 5

6 Adapazarı Meslek Yüksekokulu Java Programlama Burada, <html>, </html> tagları arasına java applet kodumuzu gömmek için; <applet code= applet_adı.class width=değer height=değer > </applet> komutunu kullanırız, burada width pencerenin enini, height yüksekligini pixel (görüntü noktası) olarak vermektedir. 4) Html dosyasını bir web tarayıcı (Firefox veya Internet Explorer gibi) veya appletviewer programı ile çalıştırabiliriz. Bunun için; a) Merhaba.html dosyamızın üzerine çift tıkladığımızda aşağıdaki ekran görüntüsünü elde ettik b) Appletviewer.exe dosyası ile ki bu dosya Java programının kurulduğu dizin içerisinde yer almaktadır. {Örneğin C:\Program Files\Java\jdk1.6.0_02\bin gibi}

Appletler II. Eclipse Programı İle Applet kodunu yazıp çalıştırmak; Eclipse ile Visual Editor deki Swing menüsünden pplet uygulamalarını gerçekleştirebilirsiniz 7 Eğer Visual Editor-VE programı kurulu değilse Eclipse entegre etmemiz gerekir. Bunun için; Eclipse programını açtıktan sonra Help menüsünden Check for Updates seçilir. (Help-->Check for Updates-->Find And Install' e tıklıyoruz. Search kısmına Visual editor yazılır ve enter ( Go ) tuşuna basılarak arama yapılır ve kurulur. Sayfa 7

8 Adapazarı Meslek Yüksekokulu Java Programlama GRAFİKSEL UYGULAMALAR Java dili, programcılara sadece grafik çizimler için değil aynı zamanda grafiksel uygulamalar için de geniş imkânlar sunar, bu özelliği ile hareket bağımlı (Event-driven ) bir dilin tüm özelliklerine sahiptir. Buton, pencere, metin ve resim kutusu, menüler vb. kontrol nesneleri yardımıyla kullanıcı ile etkileşimli grafiksel kullanıcı ara yüzü (Graphical User Interface-GUI) oluşturabilirsiniz. GUI ile programlarımıza görsellik kazandırmış oluruz. Grafiksel çizimler yapmak ve GUI uygulamaları geliştirmek için java.awt ve javax.swing olmak üzere iki temel bileşen kümesindeki paketler kullanılır. Eğer grafiksel ara yüze sahip uygulama bir applet uygulaması ise applet paketini (import java.applet.applet; ya da import javax.swing.japplet;) de program başında import etmemiz (çağırmamız) gerekir. AWT (Abstract Window Toolkit), Java ile birlikte geliştirilen temel grafiksel kullanıcı ara yüzü oluşturma kütüphanesine verilen isimdir. AWT, pencere tabanlı- grafiksel ara yüz desteği sağlar. Ancak Java 2 platformu ile birlikte AWT yetersiz görülmüş ve çok daha geniş ve gelişmiş özelliklere sahip SWING kütüphanesi ( AWT ye göre 250 yeni sınıf ) sisteme eklenmiştir. SWING bileşenleri, AWT bileşenleri ile aynı ismi taşırlar, tek fark J harfi ile başlamalarıdır (Applet JApplet, Button Jbutton, LabelJlabel, CheckBox JcheckBox, v.s. ) diyebiliriz. Graphics sınıfı; yazı yazma -drawstring(), çizgi çizme-drawline(), dikdörtgen-drawrect(), oval çizme-drawoval() gibi bir dizi metodu içerisinde barındırır. Ayrıca iki (2D) ve üç boyutlu (3D) çizimler yapmamıza imkân verir. Hatırlatma: Grafik işlemler ile ilgili sınıflar, java.awt ve javax.swing olmak üzere iki paket içerisinde yer alır. Bu paketlerin haricinde grafiksel uygulamaları applet kodu olarak gerçekleştireceğimiz için Applet (java.applet.applet yada javax.swing.japplet) paketini de program başlangıcında import etmemiz (almamız) gerekir.

Appletler 9 Temel GUI (AWT ve Swing) Bileşen ve Olayları Bazı AWT ve Swing bileşenleri ve işlevleri yandaki tabloda gösterilmiştir. Bu bileşenlerin birçoğu ortak metotları kullanırlar { show(), setfont(), setlabel() gibi }. Ayrıca tüm bileşenler başta klavye ve Mouse olayları olmak üzere ortak olaylara sahiptir {keypressed(),mouseclicked() }. Sayfa 9

10 Adapazarı Meslek Yüksekokulu Java Programlama GRAFİK EKSENİ Grafik çizeceğimiz ekseni ya da koordinat sistemini çizim yaparken bilmemiz gerekir. Çünkü birçok programlama dilinin başta Java olmak üzere koordinat ekseni bildiğimiz matematiksel koordinat ekseninden farklıdır. Visual Basic, C ve Java gibi dillerinde grafik ekseni Şekil 1.a da ki gibidir; Şekil 1. a) Programlama dillerinin grafik ekseni b). Matematiksel koordinat ekseni Matematiksel koordinat sisteminde, y ekseninde yukarı doğru gidildikçe sayı değeri artarken, grafiksel eksende aşağı doğru gidildikçe sayı değeri artmaktadır. Bu farka dikkat edilmelidir. Java koordinat sisteminin ölçü birimi olarak pixel kullanılır. Pixel bir grafiksel görüntüyü oluşturan noktalardan her biridir. DOĞRU ÇİZİMİ Doğru çizimi, yatay ve dikey eksendeki koordinat noktalarının belirlenmesi ile drawline() metodu kullanılarak çizilir. drawline() metodunun kullanım biçimi; Şeklindedir. drawline (xı,yı,x2,y2);

Appletler 11 drawline komutu ile birlikte kullanılan parametrelerin anlamları; xı x ekseninin başlangıç değeri yı y ekseninin başlangıç değeri x2 x ekseninin bitiş değeri y2 y ekseninin bitiş değeri Doğru çizerken yatay ve dikey eksenlerin başlangıç ve bitiş noktalarına dikkat etmeliyiz. Örnek 1. Aşağıdaki doğruları çizen programı yazınız. Çözüm: 1. şekilde sadece y ekseninde değişim olduğundan doğrunun başlangıç noktası x 1 =15, y 1 =20 iken bitiş noktası x 2 =15, y 2 =60 dir. Bu doğruyu çizmek için drawline (15, 20, 15, 60) komutunu yazmamız yeterlidir. 2. şekilde hem x ekseninde hem de y ekseninde değişim olduğundan doğrunun başlangıç noktası x 1 =15, y 1 =90 iken bitiş noktası x 2 =60, y 2 =30 dır. Bu doğruyu çizmek için drawline (15, 90, 60, 30) komutunu yazmamız yeterlidir. 3. şekilde ise sadece x ekseninde değişim olduğundan doğrunun başlangıç noktası x 1 =10, y 1 =10 iken bitiş noktası x 2 =60, y 2 =10 dır. Bu doğruyu çizmek için drawline (10, 10, 60,10) komutunu yazmamız yeterlidir. Sayfa 11

12 Adapazarı Meslek Yüksekokulu Java Programlama Bu şekilleri ekranda gösteren applet kodu ve ekran görüntüsü aşağıda verilmiştir. Örnek 2. 5 basamaktan oluşan bir merdiven şeklini ekrana çizen programı yazınız. Çözüm: (20,20) başlangıç noktasından, 20 şer birim artırılarak basamakların oluşturulduğu programın Java kodlaması ve ekran çıktısı aşağıdaki gibidir.

Appletler 13 DİKDÖRTGEN ÇİZİMİ Dikdörtgen, kare veya kutu çizimini iki farklı yolla yapabiliriz. Birincisi dört adet doğru kullanarak diğeri ise dörtgen çizim komutu ile yapılabilir. Her iki yöntemle de çizimi yapacağız. Java dilinde içi boş bir dikdörtgen çizmek için drawrect( ), içi dolu dikdörtgen çizimi için fillrect( ) metodu kullanılır. İçi boş kutu veya dikdörtgen çizimi için drawrect() metodunun kullanım biçimi; Not: Tüm çizim metotlarında x,y parametreleri dikdörtgenin sol üst köşesini göstermekte ve değeri int (tamsayı) veri tipindedir, genislik, yükseklik, gen_yuvarlatma, yuk_yuvarlatma parametreleri de int (tamsayı) veri tipindedir, b parametresi ise boolean tipinde olup değeri true olduğunda yükseltilecek, false olduğunda alçaltılacaktır. Örnek 3. Bir dikdörtgen çerçeve içerisine Bülent Cobanoglu yazan programı kodlayınız? Çözüm: Programın java applet kodu ve ekran çıktısı aşağıdaki gibidir. Not: Grafiksel ekrana yazı yazmak için drawstring( ) metodu kullanılır. Kullanım biçimi; drawstring( Mesaj, x, y) şeklindedir. Sayfa 13

14 Adapazarı Meslek Yüksekokulu Java Programlama Örnek 4. 2006 yılı itibari ile Tokat ile Sakarya illerinin yaklaşık nüfusu sırası ile 100.000 ve 165.000 dir. Bu illerin nüfusunu grafiksel olarak gösteren programı yazınız. Çözüm: Tokat ilini içi dolu dikdörtgenle(çubukla) göstermek için g.fillrect(150, 110, 35, 100), Sakarya ilini içi boş dikdörtgenle (çubukla) göstermek için ise g.drawrect(50, 45, 35, 165) komutlarını kullandık. Burada yükseklik parametreleri (Tokat için 100, Sakarya için 165) il nüfusuna işaret etmektedir. Programın java kodu ve ekran çıktısı aşağıdaki gibidir. DAİRE ve YAY ÇİZİMİ Daire Çizimi: Java dilinde daire ve elips çizimi için drawoval() metodu kullanılır. Eğer genişlik ve yükseklik parametreleri birbirine eşit ise daire, değilse oval (elips) çizer. Daire çizimi için drawoval() metodunun kullanım biçimi; drawoval( X,Y, Genislik, Yükseklik )

Appletler 15 drawoval komutu ile birlikte kullanılan parametrelerin anlamları; X, Y daireyi çevreleyen dikdörtgenin sol üst köşesinin koordinatları (int tipinde) Genislik, Yükseklik Dairenin genişlik ve yüksekliği (int tipinde) Dairenin yarıçapı nasıl hesaplanır? drawoval() komutu ile daire çizebilmek için genişlik ve yükseklik değerlerinin birbirine eşit olması gerekir demiştik. Dairenin yarıçapı (r) ise genişlik veya yükseklik değerinin yarısına eşittir. Örnek 5. (20,20) koordinatlarında yarıçapı 25 olan bir daire çizen programı yazınız. Çözüm: Yarıçap ın 25 olabilmesi için yükseklik ve genişlik değerlerinin yarıçapın iki katı yani 50 olması gerekir. Buna göre programın kodu ve ekran çıktısı aşağıdaki gibi olur. Sayfa 15

16 Adapazarı Meslek Yüksekokulu Java Programlama Yay Çizimi: Yay (Arc), daire veya çemberin bir parçasıdır. Yay açıları derece cinsinden ölçülür. Yay, başlangıç açısından saat ibresinin ters yönünde (baslangic ve deger parametreleri pozitif ise) belirtilen açı değeri kadar çizilir. Yay çizimi için drawarc() metodunun kullanım biçimi; drawarc( X, Y, Genislik, Yükseklik, Baslangic, Deger ) şeklindedir. Örnek 6. Şekildeki gibi saat ibresi (pozitif açı) ve tersi (negatif açı) yönünde 10 dereceden başlamak üzere 110 derecelik yay çizmek için gerekli kod ve program; (a) şekli için ; g.drawarc (10,30,80,80,10,110); (b) şekli için ; g.drawarc (10,30,80,80,-10,-110); import java.awt.*; import java.applet.*; public class Grafik extends Applet { public void paint(graphics g) { g.drawarc (10, 30, 80,80,10, 110); g.drawarc (10, 30, 80,80,-10,-110); }}

Appletler 17 Programın ekran çıktısı aşağıdaki gibidir. İçi dolu yay çizimi için ise fillarc( ) metodu kullanılır. fillarc(), drawarc metodu ile aynı parametrelere sahiptir. Kendinizi Uygulayınız: Birbirinin simetriği 45 derecelik şekildeki gibi 4 adet içi dolu yay çizen programı yazınız. RENK KOMUTLARI Grafik uygulamalarındaki tüm renkler, 3 ana rengin { RGB- Red (kırmızı), Green ( Yeşil ), Blue ( Mavi) } karışımından elde edilir. Bu üç rengin her biri 0 ile 255 arasında bir değere sahiptir. Buna göre de 256*256*256=16.777.216 değişik renk birleşimi ortaya çıkar. Bu üç renk kullanılarak yeni bir renk nesnesi oluşturmak için; Color degisken=new Color(Kırmızı, Yeşil, Mavi); Komut yapısı kullanılır. Çizim rengini belirlemek için setcolor deyimi kullanılırken çizim alanı (arka plan) rengini değiştirmek için setbackground deyimi kullanılır. Örneğin aşağıdaki kod satırları ile arka plan rengi mavi olan ve koyu kahverengi renkte içi dolu bir kare ekrana çizeriz. Sayfa 17

18 Adapazarı Meslek Yüksekokulu Java Programlama public void paint(graphics g) { Color kahverengi=new Color(64,32,0); g.setcolor(kahverengi); g.fillrect(40,40,50,50); setbackground (Color.blue); } Özel renk nesnesi oluşturmanın haricinde java.awt.color sınıfında tanımlı belli renkleri kullanabilirsiniz. Bu standart renkleri ismi ile setcolor(color.renk_ismi) şeklinde tanımlayabiliriz. Bu renklerin listesi ve değeri aşağıdaki tabloda verilmiştir. Color.renk_ismi Renk Değeri (R, G, B) Color.black Siyah 0, 0, 0 Color.white Beyaz 255, 255, 255 Color.blue Mavi 0, 0, 255 Color.cyan Camgöbeği 0, 255, 255 Color.red Kırmızı 255, 0, 0 Color.pink Pembe 255, 175, 175 Color.orange Portakal 255, 200, 0 Color.yellow Sarı 255, 255, 0 Color.gray Gri 128, 128, 128 Color.magenta Eflatun 255, 0, 255 Color.lightGray Açık Gri 192, 192, 192 Color.darkGray Koyu Gri 64, 64, 64 Color.green Yeşil 0,255,0

Appletler 19 Kendinizi Uygulayınız: Kırmızı renkli içi boş 5 adet yan yana bitişik şekilde daire çizen programı yazınız. Örnek10. Şekildeki gibi içi dolu mavi renkte dikdörtgen çizen programı yazınız. Çözüm: İçi dolu dörtgenin belli bir alanının rengini zemin rengine (beyaz) dönüştürmek için g.clearrect deyimini kullandık. import java.awt.*; import java.applet.*; public class Yaricap extends Applet { public void paint(graphics g) { g.setcolor(color.blue); g.fillrect(20,20,50,50); g.clearrect(30,30,25,25); } } Sayfa 19

20 Adapazarı Meslek Yüksekokulu Java Programlama Örnek 11. Şekildeki gibi iç içe kareler çizen programı yazınız. Şeklin birbiri üstüne bindirilmiş sırasıyla içi dolu siyah ve beyaz kareler çizilerek oluşturulduğuna dikkat ediniz. Çözüm: import java.awt.color; import java.awt.graphics; import javax.swing.japplet; public class Ornek11 extends JApplet { public void paint(graphics g) { for (int i = 0; i < 50; i += 5) { g.setcolor(i % 10 == 0? Color.black : Color.white); g.fillrect(i, i, 100 - i * 2, 100 - i * 2); } } } ÇOKGEN (POLYGON) ÇİZİMİ Çokgenler çok kenarlı şekillerdir. Çokgen(poligon) çizimi için drawpolygon() veya fillpolygon() metotları kullanılır. drawpolygon() / fillpolygon() metodunun kullanım biçimi; drawpolygon (int[] x, int[] y, int n); şeklindedir. Çokgen çizen metot üç parametreye sahiptir; x dizisi; x ekseni koordinatlarını içeren tamsayılardan oluşur y dizisi; y ekseni koordinatlarını içeren tamsayılardan oluşur n ; çokgendeki noktaların sayısını belirtir. drawpolygon( ) metodu, ilk nokta ile son noktayı birleştirerek çokgen çizer.

Appletler 21 İçi dolu çokgenler, fillpolygon( ) metodu ile çizilirler. O anki renk değeri ile çokgenin içi doldurulur. İçi dolu çokgenler her zaman için kapalı çokgenlerdir. Çok sayıda doğru çizmek Çok sayıda doğru çizmek için drawpolyline( ) metodu kullanılır. Kullanım şekli drawpolygon( ) metoduna benzer şekildedir. drawpolyline (int[] x, int[] y, int n); Örnek 13. Çokgen komutu ile şekildeki gibi yıldız çizen programı yazınız. Çözüm: import java.applet.applet; import java.awt.*; public class Yildiz extends Applet { public void paint(graphics g) { int x[]={320,280,190,270,250,320,380,365,440,355}; int y[]={10,90,110,150,230,180,230,155,110,90}; g.fillpolygon(x,y,10); } } İçi boş yıldız çizmek için ise programda sadece g.fillpolygon(x,y,10)komut satırı yerine g.drawpolygon(x,y,10) yazmamız gerekir. Peki, içi boş aynı yıldızı g.drawpolyline( ) metodu ile çizmek için programda ne gibi bir değişiklik yapmak gerekirdi? Düşününüz Sayfa 21

22 Adapazarı Meslek Yüksekokulu Java Programlama Kendinizi Uygulayınız: Türk bayrağındaki ay yıldızı çizen programı yazınız. FONT AYARLARI Java applet uygulamalarında farklı yazı tiplerini (fontlarını) kullanmanız gerekebilir. Bu yazı tipleri değişik boyut ve özelliklerde olabilir. Metinlerin yazı tiplerini değiştirmek için Graphics sınıfındaki setfont() metodu kullanır. Bu metodun kullanım biçimi; Font degisken= new Font ( Font Adı, int Yazı_tipi, int Boyutu); g.setfont(degisken); Örnek 15. Teknecik köyü yazısını farklı fontlarda yazan java applet programını gerçekleştiriniz. Çözüm:

Appletler 23 KONUNUN ÖZETİ Appletler Appletler, başka bir uygulamanın (genellikle bir web tarayıcı) içerisinde java kodunu çalıştırmanın farklı bir yoludur. Başka bir ifade ile bir applet, web üzerinde dinamik olarak çalışan küçük bir program parçasıdır. Bir applet, java.applet.applet yada javax.swing.japplet sınıfının bir alt sınıfı olmalıdır. Bir applet kodunun main() metodu olmadığı için bir uygulama başlatamaz. Applet kodunun herhangi bir şey yapabilmesi için applet metodunu çağırıp, çalıştıracak uygulama programlarına ihtiyaç vardır, bu amaçla web tarayıcı programları yada appletviewer programı kullanılır. AWT (Abstract Window Toolkit), Java ile birlikte geliştirilen temel grafiksel kullanıcı ara yüzü oluşturma kütüphanesine verilen isimdir. Ancak Java 2 platformu ile birlikte AWT yetersiz görülmüş ve çok daha geniş ve gelişmiş özelliklere sahip SWING kütüphanesi sisteme eklenmiştir. SWING bileşenleri, AWT bileşenleri ile aynı ismi taşırlar, tek fark J harfi ile başlamalarıdır. Grafiksel Çizim Matematiksel koordinat sisteminde, y ekseninde yukarı doğru gidildikçe sayı değeri artarken, Java grafiksel ekranında aşağı doğru gidildikçe sayı değeri artmaktadır. Bu farka dikkat edilmelidir. Java; Graphics sınıfı ile tek boyutlu çizimler yapabilirsiniz. Bu sınıf içerisinde yazı yazma -drawstring(), çizgi çizme-drawline(), dikdörtgen-drawrect(), oval çizme-drawoval(), Çokgen(poligon) çizimi için drawpolygon() gibi bir dizi metodu barındırır. Ayrıca Graphics2D sınıfı ve alt sınıfları ile iki boyutlu (2D), Graphics3D sınıfı ve alt sınıfları ile ise üç boyutlu (3D) çizimler, yapmamıza imkân verir. KAYNAKÇA Bülent Çobanoğlu, Java ile Programlama ve Veri Yapıları, 2. Baskı, ISBN:978-9944-711-10-4, Sayfa 5-21, 377-394 Sayfa 23