Her programda
olduğu gibi java programlarında da ilk evre programı yazmaktır. Java
programları her editör programıyla yazılabilirler. Her
programda olduğu gibi java programlarında da ilk evre programı
yazmaktır. Java programları her editör programıyla yazılabilirler.
Örneğin Unix sistemlerinde vi veya emacs,windows 95 ve windows NT de DOS
Edit,veya Windows Notedefteri (notepad) veya WordPad programları
kullanılabilir. Bildiğiniz ve kullanmakta rahat olduğunuz herhangi bir
editör programı varsa rahatlıkla kullanabilirsiniz. Windows Notedefteri
(notepad) editörüyle ilgili karşılaşacabileceğiniz bir programı burada
hemen belirtmekte yarar var. Bu program tüm dosyaların arkasını txt eki
getirmeye çalışır. Programı direk içinde yazıp çalıştırabilen Microsoft
Visual J++, Symantec Visual Café, Jpad, Borland JBuilder gibi Java
geliştirme paketleri de mevcuttur. Bu kitapta bu paketler yardımıyla
program yapılmasına direk olarak hiç değinilmemiştir. Kişisel olarak bu
tür paketler java dilini öğrenme açısından bilhassa yeni programlama
öğrenenlere çok fazla yardımı olacağını sanmıyorum, üstelik sadece o
paketi kullanmayı öğreneceğiniz için bir tür bağımlılığa sebep
olabilirler. Fakat bu paketler uzman hale geldikten sonra işinizi
kolaylaştırmak açısından çok yararlı olabilir.
Şüphesiz programı yazmadan önce Java compilerının bir kopyasını
edinmeniz de gerekir. Java geliştirme seti (Java Developers kit - JDK)
SUN bilgisayar şirketinin
[Linkleri görebilmek için üye olun veya giriş yapın.]
veya
[Linkleri görebilmek için üye olun veya giriş yapın.]
internet adreslerinden bedava çekilebilir. Çekme
zahmeti istemiyorsanız SUN bu programları CD formatında da satmaktadır.
Sun programın kitaplar ve üçüncü el kaynaklarda verilmesine müsade
etmemektedir. Ayrıca derleyici sürekli olarak yenilendiğinden orijinal
kaynağından her zaman en yeni versiyonunu elde edebilirsiniz. Java ile
yaptığınız lisans anlaşmasına göre program dilini bedava olarak
kullanabilirsiniz, ancak satacağınız profesyonel bir program
geliştirdiğinizde sun şirketine kazancınız üzerinden belirli bir yüzde
ödemeniz gerekecektir.
Java programı isim.java seklinde editörle yazılır. Java programınız
yazıldıktan sonra ilk step java derleyici (compiler) programıyla
isim.class ara bilgisayar kodunu oluşturmaktır.
Java programını yazarken dikkat etmeniz gereken diğer bir özellik de
javanın nesne sınıfının ismiyle dosyadaki isminin aynı olmasıdır.
Bilgisayar konsol ekranında (DOS veya UNIX Console)
javac isim.java
Komutunu bilgisayara gönderdiğinizde programınızda hata yoksa java
derleyicisi isim.class dosyasını yaratır. Eğer programınızda hata varsa
hataların listesini verir. Programlamanın dili ingilizce olduğundan bu
hata açıklamaları da ingilizcedir. Editör programına geri dönüp hataları
düzeltmeniz, programı tekrar kaydetmeniz ve sonra bu komutu tekrar
denemeniz gerekecektir. Java programları iki ortam için yaratılabilir.
Birincisi Konsol ortamıdır (DOS, Unix console gibi). Konsol ortamını
kullanırken java dilinin konsol komutu java kullanılarak isim.class
dosyası yerel bilgisayarın makine diline program çalışırken
dönüştürülür. Bu temelde bir tercüme (interpretation) işlemidir. Sonuç
olarak java dilinde iki kademeli bir proses kullanılır, birinci işlemde
java dosyası class dosyasına çevirilir (derlenir), ikinci işlemde ise
class dosyası yerel bilgisayarın makine diline dönüştürülür. konsol
ortamında çalıştırılan program sonuçları yine konsol ortamında alınacağı
gibi pop-up pencere grafik ortamında da alınabilir. İkincisi ise
internet browser penceresi (Applet) ortamıdır. Eğer Program konsol
ortamında yazılmışsa
java isim
komutu kullanılarak sonuçlar ekranda veya açılan bir pencerede
görülebilir. Eğer Program applet ortamında yazılmışsa java programına
ilave olarak html dilinde isim.html dosyası açılır. En basit şekilde
html dosyası şu şekilde tanımlanabilir :
Buradaki width pencerenin enini pixel olarak,
height’da yüksekliğini yine pixel(görüntü noktası) olarak vermektedir.
daha sonra bu dosya konsoldan
appletviewer isim.html
komutuyla çalıstırılabilir. Buradaki appletviewer komutu java program
paketindeki basitleştirilmiş bir browser programıdır. Bu komut yerine
isim.html dosyası herhangi bir browser programına yüklenerek
görülebilir. Burada hemen şunu not etmeliyiz: browser program yazıcıları
genelde java versiyonlarını kendi programlarına aktarmakta biraz yavaş
kalmaktadırlar bu yüzden en yeni java derleyicisiyle derlediğiniz bir
programı browser’inız göstermeyebilir. Buna karşılık java “plug-in”
denilen küçük programlar geliştirmiştir. Diğer bir olasılıkta elbette
eski java derleyicinizi hemen atmayıp bir süre daha (yeni versiyonu
browser programları tarafından tam olarak tanınıncaya kadar) profesyonel
applet programları geliştirirken kullanmanızdır.
Programcılıkta adeta adet haline gelen ilk uygulama daima o dilde ekrana
Hosgeldiniz çiktisi almaktır. Bizde bu kuralın dışına çıkmayalım.
Aşağıdaki listede ilk konsol programımız Hosgeldiniz.java görülmektedir.
Program 1.1Hoşgeldiniz.java
konsol programı
import java.io.*; //java girdi cikti sinifini
cagir
class Hosgeldiniz
{
public static **** main(String args[])
{
System.out.println("Java Sinifina Hos Geldiniz!");
}
}
bu programı çalıştırmak için
bu programı çalıştırmak için
javac Hosgeldiniz.java
java Hosgeldiniz
komutlarını konsolda vermemiz yeterlidir
konsol çıktısı olarak:
Java Sinifina Hos Geldiniz!
Yazısını alırız.
Şimdi bu programdaki satırlara tek göz atalım.
import java.io.*; Bu deyim java konsol girdi çıktı kütüphanesindeki
metotları programımıza aktarır.
//java girdi cikti sinifini cagir
// işaretiyle başlayan yazılar bilgisayar tarafından kullanılamaz sadece
programı okuyanı bilgilendirmek amacı taşır /* ..... */ işaretleriyle
de verilebilir. Örneğin :
/* Bu kısımda yazılanlarla bilgisayar ilgilenmez Sadece insanların
programı anlaması içindir
*/
class Hosgeldiniz Class (sınıf) nesne kökenli programlama yapısının
temel taşıdır. Her Class'ın kendine özgü bir ismi olması gerekir. Daha
önce yazılmış Class'lar import deyimiyle programa çağırılabilirler.
Yeniden yazılmaları gerekmez. Class yapısı ve tanımlamaları üzerinde
daha sonraki bölümlerde çok daha detaylı bilgi verilecektir.
{ } başlatma ve bitirme : Sınıf tanımlaması da dahil olmak üzere Tüm
Program parçacıkları { işaretiyle başlar ve } işaretiyle son bulur. {}
işaretleri arasında yazılan program parçacıklarını normal metin
yazılmasındaki paragraf kavramına benzetebiliriz. Ayrıca program koduna
baktığımızda "; " işaretine sık sık rastlıyoruz. Bu işaret java
komutunun bittiğini belirtir. Cümle yağısında kullanılan nokta ". "
işareti gibi işlev görür. Java programlarını istersek " ;" ve "{} "
ayraçlarını kullanarak tek bir satır olarak yazabiliriz. Fakat bu
programın bizim tarafımızdan okunurluğunu zorlaştırır. Program kodunu
yazarken boşluk ve satır aralıkları bırakarak insanlar tarafından
programın okumasını kolaylaştırabiliriz. Modern programcılıktaki en
büyük sorunlardan biri bigisayar kodlarının bakım ve onarımı sorunudur.
Ticari olarak yazılan her programın belli bir ömrü olduğunu ve daha
sonra başka bir programcı tarafından üzerinde tekrar çalışılacağını
sürekli olarak hatırlamak zorundayız.
public static **** main(String args[]) diğer dillerde fonksiyon
(function), subroutine, procedure gibi adlarla anılan Program alt
parçacığının başlığı. Bu Program parçacıkları javada Metot (Method)
adıyla anılır. Metotların girdileri ve çıktıları olabilir. Bu metotun
adı main (ana Program) dır. String değişken türü args[] değişkeni girdi
olarak girebilir. Bu metotta **** çıktı türü kullanılmıştır. ****
kelimesi bu metotdan hiçbir çıktı alınmayacağını belirtir. public metota
dışarıdan ulaşılabilme izni verir.
System.out.println ("Java Sinifina Hos Geldiniz!"); Bu satır System.out
sınıfından println metotunu çalıştırır. Bu metot method girişinde
gönderilen String tipi değişkeni konsol çıktısına aktarır. Fortran
dilindeki write(*,*) veya print*, c dilindeki printf, c++ dilindeki
cout<< terimlerinin javadaki tam karşılığıdır.
Java Sinifina Hos Geldiniz!" stringi aynen aktarılırken içinde c dilinde
kullanılan temel kontrol terimleri yer alabilir ve aynen c dilindeki
anlamlarıyla kullanılabilir. Bu kontrol terimlerinden en yaygın olarak
kullanılan bazıları:
alt satıra geç
bir sonraki tab’a atla
gir tuşu bas
işaretini yaz
” “ işaretini yaz
şeklinde gösterilebilir.
İkinci konsol programımız HosgeldinizSW.java Program 1.2 de verilmiştir.
Bu program SWING kütüphanesinin alt kütüphanesi olan JoptionPane
kütüphanesi kullanılarak yaratılmıştır. Çıktı yazısı ekranda grafik
pencere olarak belirir ve Java sınıfına Hos geldiniz! mesajını verir.
Tüm bu kütüphanelerin detayları ilerideki bölümlerde verilecektir.
Şimdilik nasıl kullanıldıklarını öğrenmekle ve programlarımızı örnek
programlara benzeterek yazmaya çalışacağız. Uzman programcılar
isterlerse ilgili bölümlerden komut detaylarına derhal girebilirler.
Program 1.2 HosgeldinizSW.java
programı
import javax.swing.JOptionPane ;
class HosgeldinizSW {
public static **** main (String args[])
{
JOptionPane.showMessageDialog (null,"Java sınıfına hoş geldiniz!",
"HosgeldinizSW programı",JOptionPane.INFORMATION_MESSAGE);
System.exit(0) ;
}
}
Bu programı
javac HosgeldinizSW.java
ve
java HosgeldinizSW
komutlarını kullanarak çalıştırdığımızda
Şekil 1.1 HosgeldinizSW dosyasının konsol SWING pop-up grafik çıktısı
kullanarak görülmesi
Bu çıktıyı alabilmek için java SWING kütüphanesi içerisinde yer alan JOptionPane.showMessageDialog(....)
metodunu kullandık. Bu metodun görevi System.out.println metoduyla
aynıdır. Farkı ise grafik ortamda çıktı vermesidir. Metot içindeki
ikinci sırada verilen String tipi sabit , "Java sınıfına hoş geldiniz!"
grafik çıktıya aktarılmıştır. Üçüncü sırada verilen string tipi
"HosgeldinizSW programi" sabiti de grafik kutusunun adını belirtmiştir.
JoptionPane.INFORMATION_MESSAGE komutu ise bilgi (information) mesajı
penceresi açılacağını belirtmiştir. (grafikteki i harfi – information –
bilgi kelimesinin baş harfidir). Bu alanda kullanabileceğimiz değişik
mesaj türleri şunlardır :
JOptionPane.INFORMATION_MESSAGE : bilgi mesajı
JOptionPane.ERROR_MESSAGE : hata mesajı
JOptionPane.WARNING_MESSAGE : uyarı mesajı
JOptionPane.QUESTION_MESSAGE : soru mesajı
JOptionPane.PLAIN_MESSAGE : sade (ikonsuz) mesaj
System.exit(0); metodu
çıktı penceresinde görülen OK düğmesine basıldığında pencerenin
kapanmasını sağlar. import
javax.swing.JoptionPane; deyimi swing kütüphanesinde yer
alan JoptionPane sınıfını çağırır. Programdan da görüleceği gibi
sınıfımızın (class) adı HosgeldinizSW dir. Bir önceki programdaki gibi
bu programda kullandığımız komutlar public
static **** main(String args[]) komutuyla tanımlanan ana
metodun içinde yazılmıştır.
Üçüncü konsol program örneğimizde iki java programını birleştireceğiz
İlk programımız BasicWindowAdaptor.java Program 1.3 de verilmiştir.
Program 1.4 ise HosgeldinizSWF.java programını kapsamaktadır.
BasicWindowMonitor programını bundan sonraki programlarımızda sık sık
kullanacağız.
Program 1.3 BasicWindowMonitor.java
programı
import java.awt.event.*;
import java.awt.Window;
public class BasicWindowMonitor extends WindowAdapter
{
public **** windowClosing(WindowEvent e)
{
Window w=e.getWindow();
w.setVisible(false);
w.dispose();
System.exit(0);
}
}
Program 1.4
HosgeldinizSWF.java programı
import javax.swing.*;
public class HosgeldinizSWF
{
public static **** main(String[] args)
{
JLabel etiket=new JLabel("Java Programına Hoş geldiniz!");
JFrame cerceve=new JFrame("HosgeldinizSWF");
cerceve.addWindowListener(new BasicWindowMonitor());
cerceve.getContentPane().add(etiket);
cerceve.pack();
cerceve.setVisible(true);
}
}
Burada iki ayrı program bulunmaktadır. Bu iki
programlık seti çalıştırmak için önce iki programı da derlemek gerekir.
javac BasicWindowMonitor.java
javac HosgeldinizSWF.java
sonra ikinci prgramı
java HosgeldinizSWF
komutunu kullanarak çalıştırabiliriz. Burada birinci programın görevi
hosgeldinizSWF penceresini köşedeki X işaretine basdığımızda pencereyi
kapatmaktır. Bu programı bundan sonraki birçok uygulamamızda
kullanacağız. Programımız JFrame denilen grafik pencere ortamında
yazılmıştır. Çıktı penceresi :
Şekil 1.2 HosgeldinizSWF dosyasının konsol SWING JFrame pop-up grafik
çıktısı kullanarak görülmesi
Görüldüğü gibi burada yazma işlemini yaptırmak için tek bir komut yerine
bir komutlar ve metotlar zinciri kullanıldı. Bu program swing grafik
kütüphanesiyle grafik formatında çıktı almanın çok daha standart bir
yoludur. Temel olarak SWING grafik penceresine JLabel sınıf tipi etiket
eklenerek yazı grafik ekrana aktarılmıştır.
Program 1.5 de yine swing metodu kullanılmıştır. Buradaki küçük
farklılık bir önceki HosgeldinizSWF programında kullanılan Jlabel
nesnesi üzerinden yazdırma yerine paint metodunun kullanılmış olmasıdır.
Burada da BasicWindowMonitor programı kullanılmıştır. fakat bu programı
daha önce derlemiş olduğumuzdan tekrar derlememiz gerekmez. Sadece
javac Hosgeldiniz1SWF.java
komutuyla bu programı derlememiz ve
java Hosgeldiniz1SWF
komutuyla çalıştırmamız kafidir.
Program 1.5 Hosgeldiniz1SWF.java
programı
import
javax.swing.*;
import java.awt.*;
public class Hosgeldiniz1SWF extends Jframe
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına hoşgeldiniz!",10,40);
}
public static **** main(String[] args)
{
Hosgeldiniz1SWF cerceve=new Hosgeldiniz1SWF();
cerceve.addWindowListener(new BasicWindowMonitor());
cerceve.setSize(160,50);
cerceve.setVisible(true);
}
}
Program çıktısı:
Şekil 1.3 Hosgeldiniz1SWF.java dosyasının konsol SWING pop-up grafik
çıktısı kullanarak görülmesi
Burada yazıyı temel olarak bir grafik metodu olan
g.drawString("Java sinifina
hosgeldiniz!",10,40);
metodunu kullanarak pencere ortamına aktardık. bu metodda kullanılan
10,40 deyimi yazının grafik ortamındaki x ve y koordinatlarını
göstermektedir. y koordinatı yukardan aşağı doğru tanımlanmıştır.
cerceve.setSize(160,50);
deyimi açılan pencerenin boyutunun 160 genişliğinde ve 50 yüksekliğinde
olacağını belirtmektedir.
cerceve.setVisible(true);
terimi ise pencerenin görünmesini (çizilmesini) sağlamaktadır.
Buraya kadar kullandığımız programlar konsol programlarıydı. Bu
programlarda da gördüğünüz gibi grafik ortamını yoğun olarak
kullanabiliyoruz. Yalnız programların çalıştırılması konsoldan verilen
java isim komutuyla gerçekleştirilmektedir.
Şimdi de applet grafik ortamında çıktı almaya örnek verelim. İlk applet
programımız HosgeldinizApplet.java listesi Program 1.6 da verilmiştir
Program 1.6 HosgeldinizApplet.java
programı
import
java.applet.Applet;
import java.awt.*;
public class HosgeldinizApplet extends Applet
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına hoş geldiniz!",25,35);
}
}
bu programı çalıştırmak için önce HosgeldinizApplet.html HTML dili
programını yazmamız gerekir
Program 1.7 HosgeldinizApplet.html
HTML kodu
bu html kodunda
code="HosgeldinizApplet.class" width=200 height=50 >
komutu html'e compile edilmiş olan HosgeldinizApplet.class dosyasının
gösterilmesini istemektedir. Şüphesiz aynı komut çok daha kompleks bir
html dosyasının içinde de aynı görevi görmek amacıyla kullanılabilirdi.
Programı çalıştırmak için
javac HosgeldinizApplet.java
appletviewer HosgeldinizApplet.html
komutlarını konsolda vermemiz yeterlidir. Elbette HosgeldinizApplet.html
dosyasının yukarıda belirtildiği gibi hazırlanmış olması da gerekir.
Fakat Konsol programlarından farklı olarak sonucu konsol yerine Applette
(browser programında) görürüz. Aynı sonucu appletviewer deyimini
kullanmadan herhangi bir browser programı çağırarak da elde edebiliriz.
Browser programında sonucu görebilmek için önce programı açmamız sonra
da HosgeldinizApplet.html dosyasını bularak açmamız gerekir. Çıktı
görüntüsü aşağıdaki gibi olacaktır.
Şekil 1.4 HosgeldinizApplet.html dosyasının appletviewer programı
kullanarak görülmesi
Bu programında temel olarak bazı farklılıklar dışında bir önceki
programlara benzediğini gözlemleyebiliriz. Bu programın temel farkı
internet ortamından herhangi bir bilgisayardan da (gerekli ayarlama ve
kopyelemelerden sonra) görülebilir olmasıdır.
import java.applet.Applet;
import java.awt.*;
deyimleri java kütüphanesindeki Applet ve
pencere(awt) sınıf grafik programlarını programımıza aktarır.
public class HosgeldinizApplet
extends Applet deyimi HosgeldinizApplet isimli sınıfı
(class) yaratır. Bu sınıf tüm Applet sınıfının bir devamı olarak
tanımlanmaktadır ( extends Applet ) diğer bir deyimle Applet sınıfının
bütün metotları extends deyimiyle HosgeldinizApplet sınıfımızın içine
kopyalanmıştır.
public **** paint(Graphics g)
deyimi appletin grafik olarak çizilmesini sağlar. Bu Metot Graphics sınıfı g nesnesini girdi olarak
kullanır. Metotun çıktısı yoktur.
g.drawString( "Java sinifina hos
geldiniz!",25,35); Bu terim Appletin x = 25, y=35
noktasına Java sinifina hos geldiniz! Yazısını çizer. DrawString Grafik
sınıfı g nesnesine ait bir metotdur.
Bu programda temel grafik kütüphanesi olarak abstract window toolkit
(awt) kullanılmıştır. ayrıca konsol programlarından farklı olarak bu
programda main metodunun kullanılmadığına da dikkat ediniz. bir program
hem applet hem de konsol olarak da oluşturulabilir, yani hem main metodu
olabilir hem de applet (html) ortamında çalışabilir.
Aynı appleti oldukça benzer bir şekilde SWING kütüphanesini kullanarak
da oluşturabilirdik.
Program 1.8 HosgeldinizSWA.java
programı
import javax.swing.Japplet;
import java.awt.Graphics;
public class HosgeldinizSWA extends JApplet
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına Hoşgeldiniz",25,25);
}
}
Şekil 1.5 HosgeldinizSWA.java dosyasının applet SWING pop-up grafik
çıktısı kullanarak görülmesi
Bu programdaki
import
javax.swing.Japplet;
import java.awt.Graphics;
deyimleri java swing kütüphanesindeki JApplet ve pencere(awt)
sınıfındaki Graphics alt programlarını (sınıflarını) programımıza
aktarır.
public class HosgeldinizSWA extends
JApplet
deyimi HosgeldinizAppletSWA isimli sınıfı (class) yaratır. Bu sınıf
swing sınıfındaki JApplet sınıfının bir devamı olarak tanımlanmaktadır (
extends JApplet). Diğer bir deyimle JApplet sınıfının bütün metotları
extends deyimiyle HosgeldinizAppletSWA sınıfımızın içine kopyalanmıştır.
Aynı işi yapmak için bir çok değişik program yazdık. Bazılarımız buna ne
gerek vardı, tek bir şekilde bu işi halledemezmi idik diyebilirler.
Haklıdırlarda. Fakat modern bilgisayar dillerinde kullanıcıları da göz
önüne almak durumundayız. Aynı işi daha renkli ve çeşitli şekillerde
yapmamız temel olarak program kullanıcılarına daha çeşitli alternatifler
sunabilir. Aynı zamanda diğer programlama alternatiflerine göre daha
üstün bir çalışma ortamı yaratabilir.
Şimdi de programımıza bir basamak daha ekleyelim ve program
kullanıcılara isimlerini sorsun, yani ekrandan bir veri girelim. Bunu
yapmak için ilk tanımlayacağımız program konsol ortamında çalışan
Hosgeldiniz2.java programı olacaktır. Bu programın çıktısı dos konsol
ortamında şekil 1.6 da görülmektedir. Program ekranda isminizi giriniz
yazacak, ve ekranda isim girildikten sonra
java sınıfına hosgeldiniz! isim
çıktısını verecektir.
Program 1.9 Hosgeldiniz2.java
programı
import java.io.*;
class Hosgeldiniz2 {
public static **** main (String args[]) throws IOException
{
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("isminizi giriniz : ");
String isim=new String(cin.readLine());
System.out.println("Java Sinifina Hos Geldiniz! "+isim);
cin.close();
}
}
=============================
C:cojavaprog>java Hosgeldiniz2
isminizi giriniz :
Turhan
Java Sinifina Hos Geldiniz! Turhan
C:cojavaprog>
=============================
Şekil 1.6 Hosgeldiniz2.java dosyasının sonuçlarının dos çıktısı
kullanarak görülmesi
Bu programda okuma işlemini yapmakiçin önce
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
Deyimini kullanarak bir okuma kanalı açtık, sonra
System.out.println("isminizi giriniz : ");
String isim=new String(cin.readLine());
Deyimindeki cin.readLine()
komutuyla ismi cin kanalından okuyarak isim değişkenine aktardık.
Aynı işlemi yapan fakat girdi çıktı sınıf tanımlarında Ek 1 de verilen
Text sınıfını kullanan Hosgeldiniz3.java programı şekil 1.10 da
verilmiştir.
Program 1.10 Hosgeldiniz3.java
programı
import java.io.*;
import Text;
class Hosgeldiniz3 {
public static **** main (String args[]) throws IOException
{
Text cin=new Text();
System.out.print("isminizi giriniz : ");
String isim=cin.readString();
System.out.println("Java Sinifina Hos Geldiniz! "+isim);
}
}
Hosgeldiniz2.java programının çıktısı da
Hosgeldiniz2.java programıyla aynı olacaktır.
Şimdi de swing kütüphanesindeki JoptionPane.showInputDialog() kullanarak
girdi penceresi açan ve çıktı penceresine
JoptionPane.showMessageDialog() kullanarak mesajı yazan
Hosgeldiniz1SW.java programını göreceğiz.
Program 1.11 Hosgeldiniz1SW.java
programı
import javax.swing.JoptionPane;
class Hosgeldiniz1SW {
public static **** main (String args[])
{
String isim=JoptionPane.showInputDialog("Lutfen isminizi giriniz :");
JoptionPane.showMessageDialog(null,"Java Sinifina Hos Geldiniz!
"+isim,"Hosgeldiniz1SW programi",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Bu programı çalıştırmak içinde
javac Hosgeldiniz1SW.java
komutuyla bu programı derlememiz ve
java Hosgeldiniz1SW
komutuyla çalıştırmamız gerekecektir. Program girdi ve çıktı pencereleri
şekil 1.7 ve Şekil 1.8 de verilmiştir.
Şekil 1.7 Hosgeldiniz1SW.java dosyasının pencere popup girdi penceresi
Şekil 1.8 Hosgeldiniz1SW.java dosyasının pencere popup çıktı penceresi
Şimdi aynı girdi ve çıktı programlamasını JApplet sınıfını kullanarak
yapalım. Input (girdi) için yine JoptionPane sınıfından yararlanacağız.
Program 1.12 Hosgeldiniz1SWA.java
programı
import javax.swing.*;
import java.awt.Graphics;
public class Hosgeldiniz1SWA extends JApplet
{
String isim;
public **** init()
{
isim=JoptionPane.showInputDialog("isminizi giriniz : ");
}
public **** paint(Graphics g)
{
g.drawString("Java sinifina Hosgeldiniz "+isim,25,25);
}
}
Bu programı çalıştırmak için compile prosesinde
yine
javac Hosgeldiniz1SWA.java komutunu kullanacağız. sonra
Hosgeldiniz1SWA.html dosyasını oluşturacağız.
Program 1.13 Hosgeldiniz1SWA. html
programı
Hosgeldiniz1SWA.html dosyasını herhangi bir
browser programında görebileceğimiz gibi javanın kendi basit browser
programı appletviewer da da
appletviewer Hosgeldiniz1SWA.html
deyimiyle gösterebiliriz. Program girdi ve çıktısı :
Şekil 1.9 Hosgeldiniz1SWA.java dosyasının applet popup girdi penceresi
Program çıktısı appletviewer browserinda görüleceği şekliyle :
Şekil 1.10 Hosgeldiniz1SWA.java dosyasının applet çıktı penceresi
olacaktır. Son olarak girdi ve çıktı işlemlerini aynı pencerede
yapıldığı biraz daha kompleks olan Hosgeldiniz5SWA.java programına göz
atalım.
Program 1.13 Hosgeldiniz5SWA.java
programı
import javax.swing.*; // java JApplet sınıfını
çağır
import java.awt.*; // java pencere kullanma sınıflarını (awt
kütüphanesi) çağır
import java.awt.event.*; // java pencereyi dinleme sınıflarını (awt
kütüphanesi) çağır
public class Hosgeldiniz5SWA extends JApplet implements ActionListener
{
//sınıf değişkenleri
JTextArea ciktiAlani; //JTextArea sınıfı çıktı alanı değişkeni
JLabel kutubasligi; //JLabel sınıfı değişkeni (nesnesi) kutubasligi
JTextField kutugirdisi;//JTextfield sinifi degiskeni (nesnesi)
kutugirdisi
String isim;
public **** init()
{
//girdi çıktı programlarının içine yazılacağı ana pencereyi tanımla
Container c=getContentPane();
c.setLayout(new FlowLayout());
isim="Mürşide Gökağaç";
kutubasligi=new JLabel("isminizi giriniz :");
c.add(kutubasligi);//kutubasligini pencereye yaz
kutugirdisi=new JTextField(10);
c.add(kutugirdisi);//kutuyu pencereye yerlestir
ciktiAlani=new JTextArea();
Color co=c.getBackground();
ciktiAlani.setBackground(co);
c.add(ciktiAlani);
ciktiAlani.setText("Java sınıfına Hoşgeldiniz ! "+ isim);
// kutuya yeni ilave edilecek komutlari bekle
// her yeni komutta actionPerformed metodunu calistir.
kutugirdisi.addActionListener(this);
}
// girdi alanindaki olan olaylari dinleme metodu
public **** actionPerformed(ActionEvent e)
{
//pencereden ismi oku
isim=e.getActionCommand();
ciktiAlani.setText("Java sınıfına hoşgeldiniz ! "+ isim);
repaint();
}
}
bu programı da yine
javac Hosgeldiniz5SWA.java deyimiyle compile edip,
appletviewer Hosgeldiniz5SWA.html komutuyla çalıştırırız.
Hosgeldiniz5SWA.html dosyasının yukarıda anlatıldığı gibi hazırlanması
gerekir. Program çıktısı şekil 1.11 de gösterilmiştir.
Şekil 1.11 Hosgeldiniz5SWA.java dosyasının applet çıktı penceresi
Bu programda verilen komut detaylarını şu anda bilmek zorunda
değilsiniz. Benzer işlemleri yapmak için aynı formattan
yararlanabilirsiniz. İlerki bölümlerde grafik programlarının alt
metodları detaylı olarak incelenecektir.
olduğu gibi java programlarında da ilk evre programı yazmaktır. Java
programları her editör programıyla yazılabilirler. Her
programda olduğu gibi java programlarında da ilk evre programı
yazmaktır. Java programları her editör programıyla yazılabilirler.
Örneğin Unix sistemlerinde vi veya emacs,windows 95 ve windows NT de DOS
Edit,veya Windows Notedefteri (notepad) veya WordPad programları
kullanılabilir. Bildiğiniz ve kullanmakta rahat olduğunuz herhangi bir
editör programı varsa rahatlıkla kullanabilirsiniz. Windows Notedefteri
(notepad) editörüyle ilgili karşılaşacabileceğiniz bir programı burada
hemen belirtmekte yarar var. Bu program tüm dosyaların arkasını txt eki
getirmeye çalışır. Programı direk içinde yazıp çalıştırabilen Microsoft
Visual J++, Symantec Visual Café, Jpad, Borland JBuilder gibi Java
geliştirme paketleri de mevcuttur. Bu kitapta bu paketler yardımıyla
program yapılmasına direk olarak hiç değinilmemiştir. Kişisel olarak bu
tür paketler java dilini öğrenme açısından bilhassa yeni programlama
öğrenenlere çok fazla yardımı olacağını sanmıyorum, üstelik sadece o
paketi kullanmayı öğreneceğiniz için bir tür bağımlılığa sebep
olabilirler. Fakat bu paketler uzman hale geldikten sonra işinizi
kolaylaştırmak açısından çok yararlı olabilir.
Şüphesiz programı yazmadan önce Java compilerının bir kopyasını
edinmeniz de gerekir. Java geliştirme seti (Java Developers kit - JDK)
SUN bilgisayar şirketinin
[Linkleri görebilmek için üye olun veya giriş yapın.]
veya
[Linkleri görebilmek için üye olun veya giriş yapın.]
internet adreslerinden bedava çekilebilir. Çekme
zahmeti istemiyorsanız SUN bu programları CD formatında da satmaktadır.
Sun programın kitaplar ve üçüncü el kaynaklarda verilmesine müsade
etmemektedir. Ayrıca derleyici sürekli olarak yenilendiğinden orijinal
kaynağından her zaman en yeni versiyonunu elde edebilirsiniz. Java ile
yaptığınız lisans anlaşmasına göre program dilini bedava olarak
kullanabilirsiniz, ancak satacağınız profesyonel bir program
geliştirdiğinizde sun şirketine kazancınız üzerinden belirli bir yüzde
ödemeniz gerekecektir.
Java programı isim.java seklinde editörle yazılır. Java programınız
yazıldıktan sonra ilk step java derleyici (compiler) programıyla
isim.class ara bilgisayar kodunu oluşturmaktır.
Java programını yazarken dikkat etmeniz gereken diğer bir özellik de
javanın nesne sınıfının ismiyle dosyadaki isminin aynı olmasıdır.
Bilgisayar konsol ekranında (DOS veya UNIX Console)
javac isim.java
Komutunu bilgisayara gönderdiğinizde programınızda hata yoksa java
derleyicisi isim.class dosyasını yaratır. Eğer programınızda hata varsa
hataların listesini verir. Programlamanın dili ingilizce olduğundan bu
hata açıklamaları da ingilizcedir. Editör programına geri dönüp hataları
düzeltmeniz, programı tekrar kaydetmeniz ve sonra bu komutu tekrar
denemeniz gerekecektir. Java programları iki ortam için yaratılabilir.
Birincisi Konsol ortamıdır (DOS, Unix console gibi). Konsol ortamını
kullanırken java dilinin konsol komutu java kullanılarak isim.class
dosyası yerel bilgisayarın makine diline program çalışırken
dönüştürülür. Bu temelde bir tercüme (interpretation) işlemidir. Sonuç
olarak java dilinde iki kademeli bir proses kullanılır, birinci işlemde
java dosyası class dosyasına çevirilir (derlenir), ikinci işlemde ise
class dosyası yerel bilgisayarın makine diline dönüştürülür. konsol
ortamında çalıştırılan program sonuçları yine konsol ortamında alınacağı
gibi pop-up pencere grafik ortamında da alınabilir. İkincisi ise
internet browser penceresi (Applet) ortamıdır. Eğer Program konsol
ortamında yazılmışsa
java isim
komutu kullanılarak sonuçlar ekranda veya açılan bir pencerede
görülebilir. Eğer Program applet ortamında yazılmışsa java programına
ilave olarak html dilinde isim.html dosyası açılır. En basit şekilde
html dosyası şu şekilde tanımlanabilir :
Buradaki width pencerenin enini pixel olarak,
height’da yüksekliğini yine pixel(görüntü noktası) olarak vermektedir.
daha sonra bu dosya konsoldan
appletviewer isim.html
komutuyla çalıstırılabilir. Buradaki appletviewer komutu java program
paketindeki basitleştirilmiş bir browser programıdır. Bu komut yerine
isim.html dosyası herhangi bir browser programına yüklenerek
görülebilir. Burada hemen şunu not etmeliyiz: browser program yazıcıları
genelde java versiyonlarını kendi programlarına aktarmakta biraz yavaş
kalmaktadırlar bu yüzden en yeni java derleyicisiyle derlediğiniz bir
programı browser’inız göstermeyebilir. Buna karşılık java “plug-in”
denilen küçük programlar geliştirmiştir. Diğer bir olasılıkta elbette
eski java derleyicinizi hemen atmayıp bir süre daha (yeni versiyonu
browser programları tarafından tam olarak tanınıncaya kadar) profesyonel
applet programları geliştirirken kullanmanızdır.
Programcılıkta adeta adet haline gelen ilk uygulama daima o dilde ekrana
Hosgeldiniz çiktisi almaktır. Bizde bu kuralın dışına çıkmayalım.
Aşağıdaki listede ilk konsol programımız Hosgeldiniz.java görülmektedir.
Program 1.1Hoşgeldiniz.java
konsol programı
import java.io.*; //java girdi cikti sinifini
cagir
class Hosgeldiniz
{
public static **** main(String args[])
{
System.out.println("Java Sinifina Hos Geldiniz!");
}
}
bu programı çalıştırmak için
bu programı çalıştırmak için
javac Hosgeldiniz.java
java Hosgeldiniz
komutlarını konsolda vermemiz yeterlidir
konsol çıktısı olarak:
Java Sinifina Hos Geldiniz!
Yazısını alırız.
Şimdi bu programdaki satırlara tek göz atalım.
import java.io.*; Bu deyim java konsol girdi çıktı kütüphanesindeki
metotları programımıza aktarır.
//java girdi cikti sinifini cagir
// işaretiyle başlayan yazılar bilgisayar tarafından kullanılamaz sadece
programı okuyanı bilgilendirmek amacı taşır /* ..... */ işaretleriyle
de verilebilir. Örneğin :
/* Bu kısımda yazılanlarla bilgisayar ilgilenmez Sadece insanların
programı anlaması içindir
*/
class Hosgeldiniz Class (sınıf) nesne kökenli programlama yapısının
temel taşıdır. Her Class'ın kendine özgü bir ismi olması gerekir. Daha
önce yazılmış Class'lar import deyimiyle programa çağırılabilirler.
Yeniden yazılmaları gerekmez. Class yapısı ve tanımlamaları üzerinde
daha sonraki bölümlerde çok daha detaylı bilgi verilecektir.
{ } başlatma ve bitirme : Sınıf tanımlaması da dahil olmak üzere Tüm
Program parçacıkları { işaretiyle başlar ve } işaretiyle son bulur. {}
işaretleri arasında yazılan program parçacıklarını normal metin
yazılmasındaki paragraf kavramına benzetebiliriz. Ayrıca program koduna
baktığımızda "; " işaretine sık sık rastlıyoruz. Bu işaret java
komutunun bittiğini belirtir. Cümle yağısında kullanılan nokta ". "
işareti gibi işlev görür. Java programlarını istersek " ;" ve "{} "
ayraçlarını kullanarak tek bir satır olarak yazabiliriz. Fakat bu
programın bizim tarafımızdan okunurluğunu zorlaştırır. Program kodunu
yazarken boşluk ve satır aralıkları bırakarak insanlar tarafından
programın okumasını kolaylaştırabiliriz. Modern programcılıktaki en
büyük sorunlardan biri bigisayar kodlarının bakım ve onarımı sorunudur.
Ticari olarak yazılan her programın belli bir ömrü olduğunu ve daha
sonra başka bir programcı tarafından üzerinde tekrar çalışılacağını
sürekli olarak hatırlamak zorundayız.
public static **** main(String args[]) diğer dillerde fonksiyon
(function), subroutine, procedure gibi adlarla anılan Program alt
parçacığının başlığı. Bu Program parçacıkları javada Metot (Method)
adıyla anılır. Metotların girdileri ve çıktıları olabilir. Bu metotun
adı main (ana Program) dır. String değişken türü args[] değişkeni girdi
olarak girebilir. Bu metotta **** çıktı türü kullanılmıştır. ****
kelimesi bu metotdan hiçbir çıktı alınmayacağını belirtir. public metota
dışarıdan ulaşılabilme izni verir.
System.out.println ("Java Sinifina Hos Geldiniz!"); Bu satır System.out
sınıfından println metotunu çalıştırır. Bu metot method girişinde
gönderilen String tipi değişkeni konsol çıktısına aktarır. Fortran
dilindeki write(*,*) veya print*, c dilindeki printf, c++ dilindeki
cout<< terimlerinin javadaki tam karşılığıdır.
Java Sinifina Hos Geldiniz!" stringi aynen aktarılırken içinde c dilinde
kullanılan temel kontrol terimleri yer alabilir ve aynen c dilindeki
anlamlarıyla kullanılabilir. Bu kontrol terimlerinden en yaygın olarak
kullanılan bazıları:
alt satıra geç
bir sonraki tab’a atla
gir tuşu bas
işaretini yaz
” “ işaretini yaz
şeklinde gösterilebilir.
İkinci konsol programımız HosgeldinizSW.java Program 1.2 de verilmiştir.
Bu program SWING kütüphanesinin alt kütüphanesi olan JoptionPane
kütüphanesi kullanılarak yaratılmıştır. Çıktı yazısı ekranda grafik
pencere olarak belirir ve Java sınıfına Hos geldiniz! mesajını verir.
Tüm bu kütüphanelerin detayları ilerideki bölümlerde verilecektir.
Şimdilik nasıl kullanıldıklarını öğrenmekle ve programlarımızı örnek
programlara benzeterek yazmaya çalışacağız. Uzman programcılar
isterlerse ilgili bölümlerden komut detaylarına derhal girebilirler.
Program 1.2 HosgeldinizSW.java
programı
import javax.swing.JOptionPane ;
class HosgeldinizSW {
public static **** main (String args[])
{
JOptionPane.showMessageDialog (null,"Java sınıfına hoş geldiniz!",
"HosgeldinizSW programı",JOptionPane.INFORMATION_MESSAGE);
System.exit(0) ;
}
}
Bu programı
javac HosgeldinizSW.java
ve
java HosgeldinizSW
komutlarını kullanarak çalıştırdığımızda
Şekil 1.1 HosgeldinizSW dosyasının konsol SWING pop-up grafik çıktısı
kullanarak görülmesi
Bu çıktıyı alabilmek için java SWING kütüphanesi içerisinde yer alan JOptionPane.showMessageDialog(....)
metodunu kullandık. Bu metodun görevi System.out.println metoduyla
aynıdır. Farkı ise grafik ortamda çıktı vermesidir. Metot içindeki
ikinci sırada verilen String tipi sabit , "Java sınıfına hoş geldiniz!"
grafik çıktıya aktarılmıştır. Üçüncü sırada verilen string tipi
"HosgeldinizSW programi" sabiti de grafik kutusunun adını belirtmiştir.
JoptionPane.INFORMATION_MESSAGE komutu ise bilgi (information) mesajı
penceresi açılacağını belirtmiştir. (grafikteki i harfi – information –
bilgi kelimesinin baş harfidir). Bu alanda kullanabileceğimiz değişik
mesaj türleri şunlardır :
JOptionPane.INFORMATION_MESSAGE : bilgi mesajı
JOptionPane.ERROR_MESSAGE : hata mesajı
JOptionPane.WARNING_MESSAGE : uyarı mesajı
JOptionPane.QUESTION_MESSAGE : soru mesajı
JOptionPane.PLAIN_MESSAGE : sade (ikonsuz) mesaj
System.exit(0); metodu
çıktı penceresinde görülen OK düğmesine basıldığında pencerenin
kapanmasını sağlar. import
javax.swing.JoptionPane; deyimi swing kütüphanesinde yer
alan JoptionPane sınıfını çağırır. Programdan da görüleceği gibi
sınıfımızın (class) adı HosgeldinizSW dir. Bir önceki programdaki gibi
bu programda kullandığımız komutlar public
static **** main(String args[]) komutuyla tanımlanan ana
metodun içinde yazılmıştır.
Üçüncü konsol program örneğimizde iki java programını birleştireceğiz
İlk programımız BasicWindowAdaptor.java Program 1.3 de verilmiştir.
Program 1.4 ise HosgeldinizSWF.java programını kapsamaktadır.
BasicWindowMonitor programını bundan sonraki programlarımızda sık sık
kullanacağız.
Program 1.3 BasicWindowMonitor.java
programı
import java.awt.event.*;
import java.awt.Window;
public class BasicWindowMonitor extends WindowAdapter
{
public **** windowClosing(WindowEvent e)
{
Window w=e.getWindow();
w.setVisible(false);
w.dispose();
System.exit(0);
}
}
Program 1.4
HosgeldinizSWF.java programı
import javax.swing.*;
public class HosgeldinizSWF
{
public static **** main(String[] args)
{
JLabel etiket=new JLabel("Java Programına Hoş geldiniz!");
JFrame cerceve=new JFrame("HosgeldinizSWF");
cerceve.addWindowListener(new BasicWindowMonitor());
cerceve.getContentPane().add(etiket);
cerceve.pack();
cerceve.setVisible(true);
}
}
Burada iki ayrı program bulunmaktadır. Bu iki
programlık seti çalıştırmak için önce iki programı da derlemek gerekir.
javac BasicWindowMonitor.java
javac HosgeldinizSWF.java
sonra ikinci prgramı
java HosgeldinizSWF
komutunu kullanarak çalıştırabiliriz. Burada birinci programın görevi
hosgeldinizSWF penceresini köşedeki X işaretine basdığımızda pencereyi
kapatmaktır. Bu programı bundan sonraki birçok uygulamamızda
kullanacağız. Programımız JFrame denilen grafik pencere ortamında
yazılmıştır. Çıktı penceresi :
Şekil 1.2 HosgeldinizSWF dosyasının konsol SWING JFrame pop-up grafik
çıktısı kullanarak görülmesi
Görüldüğü gibi burada yazma işlemini yaptırmak için tek bir komut yerine
bir komutlar ve metotlar zinciri kullanıldı. Bu program swing grafik
kütüphanesiyle grafik formatında çıktı almanın çok daha standart bir
yoludur. Temel olarak SWING grafik penceresine JLabel sınıf tipi etiket
eklenerek yazı grafik ekrana aktarılmıştır.
Program 1.5 de yine swing metodu kullanılmıştır. Buradaki küçük
farklılık bir önceki HosgeldinizSWF programında kullanılan Jlabel
nesnesi üzerinden yazdırma yerine paint metodunun kullanılmış olmasıdır.
Burada da BasicWindowMonitor programı kullanılmıştır. fakat bu programı
daha önce derlemiş olduğumuzdan tekrar derlememiz gerekmez. Sadece
javac Hosgeldiniz1SWF.java
komutuyla bu programı derlememiz ve
java Hosgeldiniz1SWF
komutuyla çalıştırmamız kafidir.
Program 1.5 Hosgeldiniz1SWF.java
programı
import
javax.swing.*;
import java.awt.*;
public class Hosgeldiniz1SWF extends Jframe
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına hoşgeldiniz!",10,40);
}
public static **** main(String[] args)
{
Hosgeldiniz1SWF cerceve=new Hosgeldiniz1SWF();
cerceve.addWindowListener(new BasicWindowMonitor());
cerceve.setSize(160,50);
cerceve.setVisible(true);
}
}
Program çıktısı:
Şekil 1.3 Hosgeldiniz1SWF.java dosyasının konsol SWING pop-up grafik
çıktısı kullanarak görülmesi
Burada yazıyı temel olarak bir grafik metodu olan
g.drawString("Java sinifina
hosgeldiniz!",10,40);
metodunu kullanarak pencere ortamına aktardık. bu metodda kullanılan
10,40 deyimi yazının grafik ortamındaki x ve y koordinatlarını
göstermektedir. y koordinatı yukardan aşağı doğru tanımlanmıştır.
cerceve.setSize(160,50);
deyimi açılan pencerenin boyutunun 160 genişliğinde ve 50 yüksekliğinde
olacağını belirtmektedir.
cerceve.setVisible(true);
terimi ise pencerenin görünmesini (çizilmesini) sağlamaktadır.
Buraya kadar kullandığımız programlar konsol programlarıydı. Bu
programlarda da gördüğünüz gibi grafik ortamını yoğun olarak
kullanabiliyoruz. Yalnız programların çalıştırılması konsoldan verilen
java isim komutuyla gerçekleştirilmektedir.
Şimdi de applet grafik ortamında çıktı almaya örnek verelim. İlk applet
programımız HosgeldinizApplet.java listesi Program 1.6 da verilmiştir
Program 1.6 HosgeldinizApplet.java
programı
import
java.applet.Applet;
import java.awt.*;
public class HosgeldinizApplet extends Applet
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına hoş geldiniz!",25,35);
}
}
bu programı çalıştırmak için önce HosgeldinizApplet.html HTML dili
programını yazmamız gerekir
Program 1.7 HosgeldinizApplet.html
HTML kodu
bu html kodunda
code="HosgeldinizApplet.class" width=200 height=50 >
komutu html'e compile edilmiş olan HosgeldinizApplet.class dosyasının
gösterilmesini istemektedir. Şüphesiz aynı komut çok daha kompleks bir
html dosyasının içinde de aynı görevi görmek amacıyla kullanılabilirdi.
Programı çalıştırmak için
javac HosgeldinizApplet.java
appletviewer HosgeldinizApplet.html
komutlarını konsolda vermemiz yeterlidir. Elbette HosgeldinizApplet.html
dosyasının yukarıda belirtildiği gibi hazırlanmış olması da gerekir.
Fakat Konsol programlarından farklı olarak sonucu konsol yerine Applette
(browser programında) görürüz. Aynı sonucu appletviewer deyimini
kullanmadan herhangi bir browser programı çağırarak da elde edebiliriz.
Browser programında sonucu görebilmek için önce programı açmamız sonra
da HosgeldinizApplet.html dosyasını bularak açmamız gerekir. Çıktı
görüntüsü aşağıdaki gibi olacaktır.
Şekil 1.4 HosgeldinizApplet.html dosyasının appletviewer programı
kullanarak görülmesi
Bu programında temel olarak bazı farklılıklar dışında bir önceki
programlara benzediğini gözlemleyebiliriz. Bu programın temel farkı
internet ortamından herhangi bir bilgisayardan da (gerekli ayarlama ve
kopyelemelerden sonra) görülebilir olmasıdır.
import java.applet.Applet;
import java.awt.*;
deyimleri java kütüphanesindeki Applet ve
pencere(awt) sınıf grafik programlarını programımıza aktarır.
public class HosgeldinizApplet
extends Applet deyimi HosgeldinizApplet isimli sınıfı
(class) yaratır. Bu sınıf tüm Applet sınıfının bir devamı olarak
tanımlanmaktadır ( extends Applet ) diğer bir deyimle Applet sınıfının
bütün metotları extends deyimiyle HosgeldinizApplet sınıfımızın içine
kopyalanmıştır.
public **** paint(Graphics g)
deyimi appletin grafik olarak çizilmesini sağlar. Bu Metot Graphics sınıfı g nesnesini girdi olarak
kullanır. Metotun çıktısı yoktur.
g.drawString( "Java sinifina hos
geldiniz!",25,35); Bu terim Appletin x = 25, y=35
noktasına Java sinifina hos geldiniz! Yazısını çizer. DrawString Grafik
sınıfı g nesnesine ait bir metotdur.
Bu programda temel grafik kütüphanesi olarak abstract window toolkit
(awt) kullanılmıştır. ayrıca konsol programlarından farklı olarak bu
programda main metodunun kullanılmadığına da dikkat ediniz. bir program
hem applet hem de konsol olarak da oluşturulabilir, yani hem main metodu
olabilir hem de applet (html) ortamında çalışabilir.
Aynı appleti oldukça benzer bir şekilde SWING kütüphanesini kullanarak
da oluşturabilirdik.
Program 1.8 HosgeldinizSWA.java
programı
import javax.swing.Japplet;
import java.awt.Graphics;
public class HosgeldinizSWA extends JApplet
{
public **** paint(Graphics g)
{
g.drawString("Java sınıfına Hoşgeldiniz",25,25);
}
}
Şekil 1.5 HosgeldinizSWA.java dosyasının applet SWING pop-up grafik
çıktısı kullanarak görülmesi
Bu programdaki
import
javax.swing.Japplet;
import java.awt.Graphics;
deyimleri java swing kütüphanesindeki JApplet ve pencere(awt)
sınıfındaki Graphics alt programlarını (sınıflarını) programımıza
aktarır.
public class HosgeldinizSWA extends
JApplet
deyimi HosgeldinizAppletSWA isimli sınıfı (class) yaratır. Bu sınıf
swing sınıfındaki JApplet sınıfının bir devamı olarak tanımlanmaktadır (
extends JApplet). Diğer bir deyimle JApplet sınıfının bütün metotları
extends deyimiyle HosgeldinizAppletSWA sınıfımızın içine kopyalanmıştır.
Aynı işi yapmak için bir çok değişik program yazdık. Bazılarımız buna ne
gerek vardı, tek bir şekilde bu işi halledemezmi idik diyebilirler.
Haklıdırlarda. Fakat modern bilgisayar dillerinde kullanıcıları da göz
önüne almak durumundayız. Aynı işi daha renkli ve çeşitli şekillerde
yapmamız temel olarak program kullanıcılarına daha çeşitli alternatifler
sunabilir. Aynı zamanda diğer programlama alternatiflerine göre daha
üstün bir çalışma ortamı yaratabilir.
Şimdi de programımıza bir basamak daha ekleyelim ve program
kullanıcılara isimlerini sorsun, yani ekrandan bir veri girelim. Bunu
yapmak için ilk tanımlayacağımız program konsol ortamında çalışan
Hosgeldiniz2.java programı olacaktır. Bu programın çıktısı dos konsol
ortamında şekil 1.6 da görülmektedir. Program ekranda isminizi giriniz
yazacak, ve ekranda isim girildikten sonra
java sınıfına hosgeldiniz! isim
çıktısını verecektir.
Program 1.9 Hosgeldiniz2.java
programı
import java.io.*;
class Hosgeldiniz2 {
public static **** main (String args[]) throws IOException
{
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("isminizi giriniz : ");
String isim=new String(cin.readLine());
System.out.println("Java Sinifina Hos Geldiniz! "+isim);
cin.close();
}
}
=============================
C:cojavaprog>java Hosgeldiniz2
isminizi giriniz :
Turhan
Java Sinifina Hos Geldiniz! Turhan
C:cojavaprog>
=============================
Şekil 1.6 Hosgeldiniz2.java dosyasının sonuçlarının dos çıktısı
kullanarak görülmesi
Bu programda okuma işlemini yapmakiçin önce
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
Deyimini kullanarak bir okuma kanalı açtık, sonra
System.out.println("isminizi giriniz : ");
String isim=new String(cin.readLine());
Deyimindeki cin.readLine()
komutuyla ismi cin kanalından okuyarak isim değişkenine aktardık.
Aynı işlemi yapan fakat girdi çıktı sınıf tanımlarında Ek 1 de verilen
Text sınıfını kullanan Hosgeldiniz3.java programı şekil 1.10 da
verilmiştir.
Program 1.10 Hosgeldiniz3.java
programı
import java.io.*;
import Text;
class Hosgeldiniz3 {
public static **** main (String args[]) throws IOException
{
Text cin=new Text();
System.out.print("isminizi giriniz : ");
String isim=cin.readString();
System.out.println("Java Sinifina Hos Geldiniz! "+isim);
}
}
Hosgeldiniz2.java programının çıktısı da
Hosgeldiniz2.java programıyla aynı olacaktır.
Şimdi de swing kütüphanesindeki JoptionPane.showInputDialog() kullanarak
girdi penceresi açan ve çıktı penceresine
JoptionPane.showMessageDialog() kullanarak mesajı yazan
Hosgeldiniz1SW.java programını göreceğiz.
Program 1.11 Hosgeldiniz1SW.java
programı
import javax.swing.JoptionPane;
class Hosgeldiniz1SW {
public static **** main (String args[])
{
String isim=JoptionPane.showInputDialog("Lutfen isminizi giriniz :");
JoptionPane.showMessageDialog(null,"Java Sinifina Hos Geldiniz!
"+isim,"Hosgeldiniz1SW programi",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Bu programı çalıştırmak içinde
javac Hosgeldiniz1SW.java
komutuyla bu programı derlememiz ve
java Hosgeldiniz1SW
komutuyla çalıştırmamız gerekecektir. Program girdi ve çıktı pencereleri
şekil 1.7 ve Şekil 1.8 de verilmiştir.
Şekil 1.7 Hosgeldiniz1SW.java dosyasının pencere popup girdi penceresi
Şekil 1.8 Hosgeldiniz1SW.java dosyasının pencere popup çıktı penceresi
Şimdi aynı girdi ve çıktı programlamasını JApplet sınıfını kullanarak
yapalım. Input (girdi) için yine JoptionPane sınıfından yararlanacağız.
Program 1.12 Hosgeldiniz1SWA.java
programı
import javax.swing.*;
import java.awt.Graphics;
public class Hosgeldiniz1SWA extends JApplet
{
String isim;
public **** init()
{
isim=JoptionPane.showInputDialog("isminizi giriniz : ");
}
public **** paint(Graphics g)
{
g.drawString("Java sinifina Hosgeldiniz "+isim,25,25);
}
}
Bu programı çalıştırmak için compile prosesinde
yine
javac Hosgeldiniz1SWA.java komutunu kullanacağız. sonra
Hosgeldiniz1SWA.html dosyasını oluşturacağız.
Program 1.13 Hosgeldiniz1SWA. html
programı
Hosgeldiniz1SWA.html dosyasını herhangi bir
browser programında görebileceğimiz gibi javanın kendi basit browser
programı appletviewer da da
appletviewer Hosgeldiniz1SWA.html
deyimiyle gösterebiliriz. Program girdi ve çıktısı :
Şekil 1.9 Hosgeldiniz1SWA.java dosyasının applet popup girdi penceresi
Program çıktısı appletviewer browserinda görüleceği şekliyle :
Şekil 1.10 Hosgeldiniz1SWA.java dosyasının applet çıktı penceresi
olacaktır. Son olarak girdi ve çıktı işlemlerini aynı pencerede
yapıldığı biraz daha kompleks olan Hosgeldiniz5SWA.java programına göz
atalım.
Program 1.13 Hosgeldiniz5SWA.java
programı
import javax.swing.*; // java JApplet sınıfını
çağır
import java.awt.*; // java pencere kullanma sınıflarını (awt
kütüphanesi) çağır
import java.awt.event.*; // java pencereyi dinleme sınıflarını (awt
kütüphanesi) çağır
public class Hosgeldiniz5SWA extends JApplet implements ActionListener
{
//sınıf değişkenleri
JTextArea ciktiAlani; //JTextArea sınıfı çıktı alanı değişkeni
JLabel kutubasligi; //JLabel sınıfı değişkeni (nesnesi) kutubasligi
JTextField kutugirdisi;//JTextfield sinifi degiskeni (nesnesi)
kutugirdisi
String isim;
public **** init()
{
//girdi çıktı programlarının içine yazılacağı ana pencereyi tanımla
Container c=getContentPane();
c.setLayout(new FlowLayout());
isim="Mürşide Gökağaç";
kutubasligi=new JLabel("isminizi giriniz :");
c.add(kutubasligi);//kutubasligini pencereye yaz
kutugirdisi=new JTextField(10);
c.add(kutugirdisi);//kutuyu pencereye yerlestir
ciktiAlani=new JTextArea();
Color co=c.getBackground();
ciktiAlani.setBackground(co);
c.add(ciktiAlani);
ciktiAlani.setText("Java sınıfına Hoşgeldiniz ! "+ isim);
// kutuya yeni ilave edilecek komutlari bekle
// her yeni komutta actionPerformed metodunu calistir.
kutugirdisi.addActionListener(this);
}
// girdi alanindaki olan olaylari dinleme metodu
public **** actionPerformed(ActionEvent e)
{
//pencereden ismi oku
isim=e.getActionCommand();
ciktiAlani.setText("Java sınıfına hoşgeldiniz ! "+ isim);
repaint();
}
}
bu programı da yine
javac Hosgeldiniz5SWA.java deyimiyle compile edip,
appletviewer Hosgeldiniz5SWA.html komutuyla çalıştırırız.
Hosgeldiniz5SWA.html dosyasının yukarıda anlatıldığı gibi hazırlanması
gerekir. Program çıktısı şekil 1.11 de gösterilmiştir.
Şekil 1.11 Hosgeldiniz5SWA.java dosyasının applet çıktı penceresi
Bu programda verilen komut detaylarını şu anda bilmek zorunda
değilsiniz. Benzer işlemleri yapmak için aynı formattan
yararlanabilirsiniz. İlerki bölümlerde grafik programlarının alt
metodları detaylı olarak incelenecektir.