32
1 APPLET KAVRAMI ve GRAFİK UYGULAMALARI BÜLENT ÇOBANOĞLU SAKARYA ÜNİVERSİTESİ

APPLET KAVRAMI ve GRAFİK UYGULAMALARI

  • Upload
    olaf

  • View
    56

  • Download
    2

Embed Size (px)

DESCRIPTION

APPLET KAVRAMI ve GRAFİK UYGULAMALARI. BÜLENT ÇOBANOĞLU SAKARYA ÜNİVERSİTESİ. GİRİŞ. - PowerPoint PPT Presentation

Citation preview

Page 1: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

1

APPLET KAVRAMI ve GRAFİK UYGULAMALARI

BÜLENT ÇOBANOĞLU

SAKARYA ÜNİVERSİTESİ

Page 2: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20082

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.

• Java applet kodları, <applet> ….. </applet> komut dizini ile başlar ve biter. Dosya uzantısı *.class’ tır. Applet kodlarının çalışabilmesi için bilgisayarda java programının yüklü olması gerekir.

Page 3: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20083

JAVA APPLET OLUŞTURMA VE ÇALIŞTIRMA

• Bir Java appleti, appletviewer programı veya html (web) dosyası ile çalıştırılabilir. Appletler sayesinde görsel araçlar (buton, label, gibi) kullanılabilmektedir. Yazılan java kodları derlenerek önce .class uzantılı dosyaya dönüştürülür, daha sonrada bir html dosyası içinde kullanıcıya sunulur. 

• Bir html kodunda, <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üksekliğini pixel(görüntü noktası) olarak vermektedir.

Page 4: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20084

Applet Metotları ve 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.

Page 5: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20085

Applet kavramı

• Java applet program kodunun başlangıcında iki önemli paketi import etmek (çağırmak) gerekir. Grafiksel ara yüz için java.awt ve applet sınıfı için gerekli olan java.applet paketini/kütüphanesini çağırmamız gerekir.

• Eğer NetBeans, JCreator gibi bir editör programı kullanıyorsanız bu eklentileri (java.awt ve java.applet) kendisi otomatik olarak ekleyecektir.

Page 6: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20086

Merhaba.java applet kodu

import java.awt.*;import java.applet.*;public class Merhaba extends Applet{public void paint (Graphics g){g.drawString ("Merhaba java dostlari",50,60);}}JBuilder ile bu kodu;Run Run As Java Applet Adımlarını uygulayarak Applet kodunu çalıştırabiliriz.

Page 7: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20087

Açıklama

• 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.

• 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 dostlari” 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ı ile applet adının aynı olmasına dikkat ediyoruz.

Page 8: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 20088

Appletlere Parametre Aktarımı

• Appletler ile parametre tanımı da yapılabilir. Bunun <param> etiketi kullanılır. <param> etiketini, parametrelere değer aktarımında kullanırız. Kullanım şekli;

• <param name="parametre_ismi" value="parametre_degeri">

şeklindedir. • Parameterlere erişmek için ise

getParameter() yöntemi kullanılır. Aşağıdaki örnek programımızı inceleyiniz.

Page 9: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 2008 9

Appletlere parametre aktarımı

Java kodu (Parametreornek.java) Html kodu (Parametreornek.html)

import java.awt.*;import java.applet.*;public class Parametreornek extends Applet {public void paint(Graphics g) { String s1,s2,s3,s4; s1=getParameter("Ad"); s2=getParameter("Soyad"); s3=getParameter("Universite"); s4=getParameter("Bolum"); g.drawString ("Ad:" + s1, 40,80); g.drawString ("Soyad:" + s2, 40,100); g.drawString ("Universite:" + s3, 40,120); g.drawString ("Bolum:" + s4, 40,140); } }

<html><applet code="Parametreornek.class" width=400 height=200> <PARAM NAME="Ad" VALUE="BULENT"> <PARAM NAME="Soyad" VALUE="COBANOGLU"> <PARAM NAME="Universite" VALUE="SAKARYA"> <PARAM NAME="Bolum" VALUE="BILGISAYAR"></applet></html>

Page 10: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 200810

Örnek 3:

import javax.swing.*;import java.awt.*;public class x extends JApplet{ public void init( ) {

setLayout(new FlowLayout( ) );JCheckBox cb1 = new JCheckBox( "Siyah" );JCheckBox cb2 = new JCheckBox( "Mavi" );JCheckBox cb3 = new JCheckBox( "Sari" );add( cb1 );add( cb2 );add( cb3 );

}}

Page 11: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 200811

Örnek 4: Bir metin kutusu içerisine girilen tamsayıların toplamını gösteren applet uygulaması

import java.awt.*;import java.applet.*;public class P extends Applet implements ActionListener { Label kutubasligi; TextField kutugirdisi; int sayi; int toplam; public void init() { kutubasligi = new Label("Bir tamsayi giriniz : "); add(kutubasligi); kutugirdisi = new TextField(10); add(kutugirdisi); toplam = 0; kutugirdisi.addActionListener(this); } public void actionPerformed(ActionEvent e) { Integer sayi1 = new Integer(e.getActionCommand()); sayi = sayi1.intValue();//dönüşüm toplam += sayi; kutugirdisi.setText(""); repaint(); } public void paint(Graphics g) { g.drawString("Su ana kadarki sayilarin toplami : " + toplam, 25, 50); }}

Page 12: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 200812

Örnek 5: Girilen not değerine göre mesaj veren applet kodu import java.awt.*;import java.applet.*;import java.awt.event.*;

public class MetinKutusu extends Applet implements ActionListener{TextField kutucuk;int not;

public void init(){kutucuk=new TextField(10);add(kutucuk);kutucuk.addActionListener(this);}public void actionPerformed(ActionEvent olay){not=Integer.parseInt(kutucuk.getText());repaint();}public void paint(Graphics g){g.drawString("Notunuz : "+not, 50,50);if(not!=0){if(not<50)g.drawString("kaldın canım...",50,100);else g.drawString("haketmemiştin ama...",50,100);}}

}

Page 13: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bülent ÇOBANOĞLU, SAÜ, Applet Kavramı- 200813

Örnek 7: Butona tıklandığında butonun başlığını değiştiren basit bir applet programı.

import java.awt.*;import java.applet.*;import java.awt.event.*;public class Metinkutusu extends Applet implements ActionListener{private Button btn;

public void init(){btn=new Button ("düğme kapalı");btn.addActionListener(this);add(btn);}public void actionPerformed(ActionEvent e){String str=btn.getLabel();if (str.equals("düğme açık"))btn.setLabel("düğme kapalı");elsebtn.setLabel("düğme açık");} }

Page 14: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Örnek 8: kürenin hacmini hesaplayan applet programıimport java.awt.event.*;import java.awt.*;

public class zar extends java.applet.Applet implements ActionListener { Label kutubasligi; TextField kutugirdisi; double sayi; double hacim; public void init() { kutubasligi = new Label("Kurenin yaricapini giriniz : "); add(kutubasligi); kutugirdisi = new TextField(10); add(kutugirdisi); kutugirdisi.addActionListener(this); } public void actionPerformed(ActionEvent e) { Double sayi1 = new Double(e.getActionCommand()); sayi = sayi1.doubleValue(); hacim = (4.0/3.0)*Math.PI*Math.pow(sayi,3); kutugirdisi.setText(""); repaint(); } public void paint(Graphics g) { g.drawString("kurenin hacmi : " + hacim, 150, 50); }}

Page 15: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Örnek 9: Tavlada zar atan programimport java.applet.*;import java.awt.*;import java.awt.event.*;

public class zar extends Applet implements ActionListener { private Button atButonu; private boolean atis = false; public void init() { atButonu = new Button("Zarı At"); add(atButonu); atButonu.addActionListener(this); } public void actionPerformed(ActionEvent e) { atis = true; repaint(); } public void paint(Graphics g) { int zar1, zar2; if (atis) { zar1 = (int) (Math.random() * 6) + 1; zar2 = (int) (Math.random() * 6) + 1; g.drawString("zarlar " + zar1 + " ve " + zar2, 20, 40); if (zar1 == zar2 && zar1 == 6) g.drawString("düşeeeeeş...Tebrikler, şimdi 2 el oyna", 20, 60); else g.drawString("iyisin iyisin.. devam et", 20, 60); } } }

Page 16: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

GRAFİKSEL KULLANICI ARAYÜZÜ (GUI) TASARIMI

• Java dili, programcılara grafik uygulamalar için 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.

• 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 (JButton, JLabel, JCheckBox, v.s. ) diyebiliriz.

• Grafiksel kullanıcı ara yüzü oluşturmak ve uygulama geliştirmek için java.awt ve javax.swing olmak üzere iki temel bileşen kümesindeki paketler kullanılır. Kontrol nesnelerini kullanabilmek için bu iki bileşen ve ilgili alt sınıflarını program başlangıcında çağırmak gerekir.

• Tüm grafiksel ara yüze sahip uygulamalar, aynı zamanda bir applet uygulamadır. O nedenle applet paketini (java.applet) de program başında import etmemiz (çağırmamız) gerekir.

• Appletler hareket bağımlı (event driven) uygulamalar olduğundan hareketleri (butona tıklanması, Mouse hareketi gibi) yakalamak için java.awt.event paketinin de program başında import edilmesi yani çağrılması gerekir.

Page 17: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Graphics

• 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.

• 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 java.applet paketini de program başlangıcında import etmemiz (almamız) gerekir.

Page 18: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

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 12.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.

Page 19: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

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;

drawLine (xı,yı,x2,y2);Şeklindedir. 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.

Page 20: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

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;

Page 21: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

DİKDÖRTGEN ÇİZİMİ

Java dili, içi boş veya dolu dikdörtgen çiziminin haricinde içi boş ve kenarları yuvarlatılmış dikdörtgen çizimi için; drawRoundRect(x,y,genislik, yükseklik, gen_yuvarlatma,yuk_yuvarlatma)

içi dolu ve kenarları yuvarlatılmış dikdörtgen çizimi için ise;fillRoundRect(x,y,genislik, yükseklik, gen_yuvarlatma,yuk_yuvarlatma)

metotlarını kullanır. Ayrıca içi boş üç boyutlu dikdörtgen çizimi için;draw3DRect(x, y, genislik, yükseklik, b)

metodu içi dolu üç boyutlu dikdörtgen çizimi için ise; fill3DRect(x, y, genislik, yükseklik, b)

metodu kullanılır.

Sol üst köşesinden (x,y), belirtilen genişlik ve yükseklikte zemin renginde bir dikdörtgen çizmek için ise clearRect() metodu kullanılır

Page 22: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Örnek 10: Dikdörtgen içerisine yazı örneği

Komutun kullanım şekli; drawRect(x, y, genislik, yükseklik)

Page 23: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Bir dikdörtgenin hem drawRect( ) hem de 4 adet drawLine( ) metodu ile nasıl çizilebileceğini öğrenmek için aşağıdaki kodları inceleyiniz.

23

Page 24: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

DAİRE ÇİZİMİ

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 )

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. Dairenin yarıçapı (r) ise genişlik veya yükseklik değerinin yarısına eşittir.

Page 25: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

YAY ÇİZİMİ

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.

Ş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);

• İçi dolu yay çizimi için ise fillArc( ) metodu kullanılır. fillArc(), drawArc metodu ile aynı parametrelere sahiptir.

Page 26: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Örnek. Birbirinin simetriği 45 derecelik şekildeki gibi 4 adet içi dolu yay çizen programı yazınız

• import java.awt.*;• import java.applet.*;• public class Grafik extends Applet {• public void paint(Graphics g) {• g.fillArc (10, 30, 80,80, 0, 45);• g.fillArc (10, 30, 80,80, 180,45);• g.fillArc (10, 30, 80,80, 90, 45);• g.fillArc (10, 30, 80,80, 270, 45);• }}

Page 27: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

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.

• Ö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. { Color.WHITE, Color.BLACK, Color.RED, Color.GREEN, Color.BLUE, Color.CYAN, Color.MAGENTA, Color.YELLOW, Color.PINK, Color.ORANGE, Color.LIGHT_GRAY, Color.GRAY, Color.DARK_GRAY gibi}

• Ö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.

public void paint(Graphics g) { Color kahverengi=new Color(64,32,0); g.setColor(kahverengi);

g.fillRect(40,40,50,50);setBackground (Color.blue); }

Ayrıca RGB renk sisteminin bir alternatifi olarak HSB (Hue, Saturation, Brightness) renk sistemi geliştirilmiştir. Kullanım şekli;Color değişken = Color.getHSBColor(h,s,b); Örneğin; Color renk = Color.getHSBColor( (float)Math.random(), 1.0F, 1.0F );

Page 28: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Ç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.

İç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);

28

Page 29: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Örnek: Çokgen komutu ile şekildeki gibi yıldız çizen programı yazınız.

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…

G5BUID - Java Swing - 200829

Page 30: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

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);

30

Page 31: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

GRAPHICS2D –İki Boyutlu Grafikler

İki Boyutlu Çizimler için Graphics2D sınıfını kullanmaktayız. Kullanım şekli;

public void paint (Graphics g) { Graphics2D g2 = (Graphics2D)g;….... }

Çizilecek şeklin rengini belirlemek için “setColor” veya “setPaint” yöntemini kullanabilirsiniz.

Çizilecek şeklin çizgi kalınlığını belirlemek için “setStroke” metodunu kullanabilirsiniz. Bu metot kullanılacaksa “BasicStroke” sınıfından değeri parametre olarak alacaktır. public void paint (Graphics g) {

Graphics2D g2 = (Graphics2D)g;g2.setColor (Color.red);BasicStroke kalinlik= new BasicStroke(10);g2.setStroke(kalinlik);g2.drawRect(50,50,150,50); }

31

Page 32: APPLET KAVRAMI  ve GRAFİK UYGULAMALARI

Uygulama

32