Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Font Ve Renk Kontrolü

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Font ve Renk Kontrolü
Yaratacağınız Java applet'lerinde değişik yazı türlerini kullanmanız gerekebilir. Bu yazı türleri değişik boyut ve özelliklerde olabilir. Bu bölümdede değişik yazı türleri işlenecektir.
Java dilinde, Sun Microsystems tarafından hazırlanmış çeşitli alt programlar bulunur. Herhangi bir yazıyı applet içerisinde değişik fontlar ve puntolarla yazabiliriz. Bunun için sisteme:
Hangi yazı türünü (font) Yazı türünün hangi özelliğini (kalın, yatık v.s) Yazı türünün boyutunu bildirmek zorundayız. Bu işlemi gerçekleştirebilmek için Font türünden bir değişken tanımlamak gerekir. Bu tanımlamanın bir örneği aşağıda görülmektedir.

Font yaziTipi=new Font("TimesRoman", Font.BOLD,18);

Yukarıdaki program satırında her üç özellik de bulunmaktadır:
"TimesRoman" genel yazı tipini Font.BOLD parametresi yazı tipinin özelliğini 18 parametresi yazı tipinin puntosunu belirtir.
Sun microsystems firmasına göre, Java sistemindeki bir alt program olan getFontList ile sistemde bulunan tüm fontlar bulunabiliyor.
Kullanılan yazı türü genelde 4 değişik özelliğe sahip olabiliyor:
Normal : Font.PLAIN
Normal : Font.BOLD
Normal : Font.ITALIC
Normal : Font.BOLD + Font.ITALIC

Şimdi yazacağımız bir Html dosyası ve hazırlayacağımız bir applet ile TimesRoman türünden bir düz yazıyı değişik özellikleri ile belirli bir puntoda ekrana getireceğiz. Programımızı doğru olarak çalıştırdıktan sonra değerleri değiştirip çeşitli denemeler yapabilirsiniz. Örnekten sonra kullanılan değişik alt programlar açıklanacaktır.
Örnek için önce bir Html dosyası hazırlayın ve bu dosyaya fontlar.html adını verin. Aşağıda fontlar.html web sayfası kaynak kodu yazılmıştır.


<html>
<title>fontlar.html</title>

<body>

<applet code=fontlar.class width=250 height=150>
</applet>

</body>
</html>


Şimdi de aşağıda kaynak kodunu gördüğünüz fontlar.java applet'ini yazınız.

//Bu applet ile değişik font örnekleri ekrana yansitilacaktır.
import java.awt.*;
import java.applet.*;

public class fontlar extends Applet
{
public **** paint(Graphics temp)
{
Font normalFont=new Font("TimesRoman", Font.PLAIN,18);
Font kalinFont=new Font("TimesRoman", Font.BOLD,18);
Font yatikFont=new Font("TimesRoman", Font.ITALIC,18);
Font yatikkalinFont=new Font("TimesRoman", Font.BOLD+Font.ITALIC,18);
temp.setFont(normalFont);
temp.drawString("NORMAL FONT", 10, 25);
temp.setFont(kalinFont);
temp.drawString("KALIN FONT",10,50);
temp.setFont(yatikFont);
temp.drawString("YATIK FONT",10,75);
temp.setFont(yatikkalinFont);
temp.drawString("YATIK ve KALIN FONT",10,100);
}
}


Simdi applet'imizi derleyelim. Bunun için MS-DOS Komut İstemindeyken aşağıdaki komutu yazınız.
Javac fontlar.java
Derleme işleminden sonra appletimizi appletviewer programı ile görelim bunun için:
appletviewer fontlar.html komutunu yazınız.
Bu komutuda verdikten sonra sistem windows'a geri dönecek ve appletviewer penceresini açıp aşağıda görülen applet'i çalıştıracaktır.


Şimdi örneğimizi inceleyelim:


Font normalFont=new Font("TimesRoman", Font.PLAIN,18);
Font kalinFont=new Font("TimesRoman", Font.BOLD,18);
Font yatikFont=new Font("TimesRoman", Font.ITALIC,18);
Font yatikkalinFont=new Font("TimesRoman", Font.BOLD+Font.ITALIC,18);

Satırları ile dört değişik yazı türü tanımlanmıştır. Herhangi bir yazının ekranda belirmesi için drawString() metodunu kullandık. Fakat önce hangi yazı türünü seçtiğimizi sisteme:

graf.setFont(normalFont);

adlı komut satırı ile bildirmemiz gerekir.
Aşağıda Fontlarla ilgili bir metod tablosu hazırlanmıştır:

Metod AdıHangi Nesnede OlduğuİşlevigetFont()GraphicsÖnceden setFont() ile belirlenmiş olan yazı türü parametrelerini elde etmeye yarar getName()FontFont adını bir dizi olarak geri gönderir. getSize()FontFont puntosunu integer olarak geri gönderir. getStyleFontFont özelliğini integer olarak geri gönderir. 0:normal, 1:kalın, 2:yatık, 3:kalın ve yatıkisPlain()FontFont stili normal için true ve false değerini geri gönderir.isBold()FontFont stili kalın için true ve falsedeğerini geri gönderir.isItalic()FontFont stili yatık için true ve false değerini geri gönderir.

Renk Kontrolu


Hazırladığımız Java Applet'lerinin yalnızca gri ve siyah renklerden oluşması, ekranda okunabilir bir bir görüntü sağlamasına rağmen diğer renklerin kullanılmasıda gerekebilir. Java sisteminde ekran renklerinin kontrolu üç ana renk olan kırmızı (red), yeşil (green) ve mavi (blue) nin karışımından oluşur. Her üç rengin dozajı 0-255 ünite oranında ayarlanabilir. Buna göre de 256*256*256=16,777,216 değişik renk olasılığı ortaya çıkar. Sistemdede belirli renkler tanımlanmıştır. Bu ön tanımlamaları color class'ından alabiliriz:

Tanımlanmış Hazır Renkler
Renk AdıRenkRGB değeriColor.whitebeyaz255,255,255Color.blacksiyah0 ,0,0 Color.lightGrayaçık gri192,192,192 Color.graygri128,128,128 Color.darkGraykoyu gri64,64,64 Color.redkırmızı255,0,0 Color.greenyeşil 0,255,0 Color.blue mavi 0,0,255 Color.yellow sarı 255,255,0 Color.magenta mor 255,0,255 Color.cyan mavi 255,175,175 Color.orange turuncu 255,200,0

Eğer appletiiz için yukarıdaki renkler yetersiz kalıyorsa sizler istediğiniz kombinasyonla yeni renkler tanımlayabilirsiniz. Bu işlem için:

Color renk=new Color(100,150,250);

biçiminde bir komut vermeniz gerekir. Yukarıdaki örnekte açık mavi bir renk elde edersiniz. Şimdi bir örnek yapalım, ekranda bir kaç renkli kare çizelim:

Renkli Kareler Programı

Bu program içinde kullanılacak rengi belirleyen setColor(), istenilen bir alanı seçilen renkle dolduran fillRect() ve bir dikdörtgen çizmeye yarayan drawRect() yöntemleri kullanılmıştır.
Aşağıdaki Html dosyasını kutular.html adı altında yaratın:


<html>
<title>kutular.html /title>
<body>

<applet code=kutular.class width=150 height=100>
</applet>

</body>
</html>

Aşağıda kutular.java applet'inin kaynak kodunu görmektesiniz


//Bu program değişik renkte kutuları applet içine yerleştirir.

import java.awt.*;
import java.applet.*;

public class kutular extends Applet
{ public **** paint (Graphics sakla)
{
int i,j;
i=5;
j=10;

sakla.setColor(Color.red);
sakla.fillRect (i,j,25,25);
sakla.setColor (Color.black);
sakla.drawRect (i-1,j-1,25,25);

i=i+30;

sakla.setColor (Color.cyan);
sakla.fillRect (i,j,25,25);
sakla.setColor (Color.black);
sakla.drawRect (i-1,j-1,25,25);

i=i+30;

sakla.setColor (Color.magenta);
sakla.fillRect (i,j,25,25);
sakla.setColor ( Color.black);
sakla.drawRect (i-1,j-1,25,25);

i=i+30;

sakla.setColor (Color.green);
sakla.fillRect (i,j,25,25);
sakla.setColor (Color.black);
sakla.drawRect (i-1,j-1,25,25);
}
}

Programınızı çalıştırıp appletviewer ile çalıştırırsanız aşağıdaki görüntüyü elde edersiniz.

Programın içinde kullandığımız

sakla.setColor(Color.red);

komut satırı ile bu komutu takip eden komutların, hangi renkten olmasını istediğimizi belirtiyoruz.

sakla.fillRect(i,j,25,25);

komut satırı ile sol kenardan i'nin değeri kadar, üst kenardan j'nin değeri kadar uzaklıkta olan, 25*25 pixel boyutlarındaki bir alanı, daha önceden belirlediğimiz renkle dolduruyoruz.

Bu işlem bittikten sonra, renkle doldurduğumuz alanın etrafına siyah bir çerçeve çizmek istediğimizden önce siyah rengi

sakla.setColor(Color.black);

komutu ile belirliyor. Daha sonrada

sakla.drawRect(i-1,j-1,25,25);

komutu ile bir dikdörtgen çiziyoruz. Dikdörtgenin boyutları 25*25 pixel olduğundan bir kare elde ediyoruz. Değişkenlerden i ve j'nin değerlerini bir pixel azaltmakla (i - 1ve j - 1) dikdörtgeni, renk ile doldurduğumuz alanların birer pixel gerisinde olmasını sağlıyoruz.

Gelişi Güzel Renkli Kutular

Yazacağımız yeni bir applet ile gelişigüzel renkli kutuları iç içe çift döngü kullanarak ekrana getirelim.
Bunun içinyine önce Html kodlarını yazalım:


<html>
<title>birsurukutu.html></title>

<body>

<applet code=birsurukutu.class width=500 height=150>
</applet>

</body>

</html>

Java Kaynak Kodu :


// Bu program gelisiguzel kutuları applet icine yerlestirir...

import java.awt.*;
import java.applet.*;

public class birsurukutu extends Applet
{
public **** paint(Graphics temp)
{

int kirmiziorani,yesilorani,maviorani;
int i,j;
i=5;
j=10;
while(j<130)
{
while(i<450)
{

kirmiziorani=(int)Math.floor(Math.random()*256);
yesilorani=(int)Math.floor(Math.random()*256);
maviorani=(int)Math.floor(Math.random()*256);

temp.setColor(new Color(kirmiziorani,yesilorani,maviorani));
temp.fillRect(i,j,25,25);
temp.setColor(Color.black);
temp.drawRect(i-1,j-1,25,25);

i=i+30;
}//i<450 dongusunun sonu

i=5;
j=j+30;

}//j<130 dongusunun sonu
}//paint(Graphics temp) sonu
}//birsurukutu appletinin sonu


Html dosyasına birsurukutu.html, Java dosyasına ise birsurukutu.java adını verin. Javac derleyicisi ile yazdığımız programı derleyip class dosyası oluştuktan sonra appletviewer programı ile çalıştırılınca elde edilen görüntü alttaki gibidir.

Burada renkler rastgele üretilmektedir. Applet her calıştırıldığında değişik ranklerle karşılaşılır.
Program içinde integertüründen tanımladığımız kırmiziorani, yesilorani, maviorani değişkenlerine


kirmiziorani=(int)Math.floor(Math.random()*256);
yesilorani=(int)Math.floor(Math.random()*256);
maviorani=(int)Math.floor(Math.random()*256);
komutları ile 0 ile 255 arasında rastgele (random) değerler veriliyor. Üç temel renk olan kırmızı, yeşil ve mavinin değişik oranları ile de değişik renkler elde ediyoruz ve elde ettiğimiz bu renklerle çizdiğimiz kutuların içini dolduruyoruz. Böylece değişik renklere sahip bir çok kutu elde etmiş oluyoruz.

Ön ve Arka Plan Renkleri

Bu zamana kadar yazdığımız Applet'lerin arka planı gri, Applet üzerindeki renkler ise siyahtı. Bu bölümde bu standart renkleri nasıl değiştireceğimizi göreceğiz. Bunu daha iyi anlayabilmek için hemen bir örnek yapalım. Html dosyası ve Java kaynak kodları aşağıda verilmiştir.


<html>
<title>renkliyazi.html<</title>

<body>

<applet code=renkliyazi.class width=450 height=150>
</applet>

</body>
</html>

Java kaynak kodu:


// Bu program ile degisik yazılar applet icine yerlestirilir

import java.awt.*;
import java.applet.*;

public class renkliyazi extends Applet
{
public **** paint(Graphics yazi)
{

setBackground(Color.red);
setForeground(Color.blue);

Font kalin=new Font("TimesRoman",Font.BOLD,36);
Font yatikkalin=new Font("TimesRoman",Font.BOLD+Font.ITALIC,24);

yazi.setFont(kalin);
yazi.drawString("Ne mutlu Türküm diyene!",10,60);

yazi.setFont(yatikkalin);
yazi.drawString("Mustafa Kemal ATATÜRK",60,100);

}
}

Program çalıştırıldığında applet'in arka planının kırmızı yazıların ise mavi olduğu görülür.

Bu programda kullanılan yeni komutlardan
setBackground(Color.red);

satırı ile applet arka plan rengini siyah;

setForeground(Color.blue);

satırı ile ise applet alanı içindeki yazıların mavi olmasını sağladık.
 
Üst Alt