(ICT) Professionals Laboratuar Notları

advertisement
The European Union’s “Making the Labour Market more
Inclusive III” programme For “North Cyprus”
Upgrading Internet Technology skills
of Information and Communication
Technologies (ICT) Professionals
Module 2:Server Side Internet
Programming
Modül 2: Sunucu Tarafı Internet
Programlaması
Laboratuar Notları
A project implemented by
CyberSoft Bilişim Teknolojileri Ltd.
This project is funded by European Union. The contents
of this publication are the sole responsibility of
Cybersoft Bilişim Teknolojileri Ltd. and can in no way be
taken to reflect the views of the European Union.
İçerik
Bölüm 7: Java Applet..........................................................................................................................2
1.1 Applet Nedir?............................................................................................................................2
1.2 Java Applet Nedir?....................................................................................................................2
1.3 Applet Sınıfı ve Yaşam Döngüsü..............................................................................................3
1.4 Java Applet’lerin Avantajları ve Dezavantajları.......................................................................4
2. İlk Java appletinin Yaratılmasi ve Çalıştırılması...........................................................................5
3. Java Applet üzerine Form Nesnelerini Eklemek............................................................................8
3.1 TextArea Kullanımı...........................................................................................................9
3.2 TextField Kullanımı.........................................................................................................10
3.3 Buton Kullanımı...............................................................................................................11
3.4 Label Kullanımı................................................................................................................11
3.5 Checkbox Kullanımı..........................................................................................................12
Örnek 1: Textfield, Button ve Label içeren Kullanıcı adı ve şifre soran bir örnek bir uygulama......12
Örnek 2: Bütün Form nesnelerinin bir arada kullanıldığı bir örnek………………………………..13
Örnek 3: Form Nesnelerinin Hizalanmasına örnek bir uygulama......................................................15
Çalışma 1 : Aşağıdaki gibi bir form hazırlayınız…………………………………………….……..18
Calışma 2 : Basit bir hesap makinesi yaratınız……………………………………………………..18
Java Applet
1
1.1 Applet Nedir?
Applet'ler bir web sayfası içinde sürekli değişken (dinamik) ve kullanıcı ile diyalog kuran
programlardır. Bu programlar Netscape, Internet Explorer gibi JAVA'yı destekleyen ağ tarama
programlama tarafından ekranda belirirler.
1.2 JAVA Applet nedir?
JAVA Applet, JavaByteCode formunda dağıtılan küçük çaplı Java uygulamalarına verilen addır. Java
Applet'ler, JavaVirtualMachine yüklü olan bilgisayarlarda web tarayıcısının içerisinden
çalıştırılabilirler ya da bağımsız bir uygulama olan Sun'ın AppletViewer uygulaması ile de test
edilebilirler. Browser'dan bağımsız çalışan JavaWebStart kullanılarak ta Java uygulamalarını
çalıştırmak mümkündür.
Java Applet'ler ilk kez 1995 yılında Java'nın ilk versionu ile hayatımıza girdi. Java Applet'ler genellikle
Java Programlama Dili ile yazılırlar ama ayrıca derlendiğinde JavaByteCode üreten başka dillerle de
yazılabilirler. (Örneğin, Jython. Jython, eski adı ile JPython, Java ile yazılmış bir Python programlama
dili implementasyonudur.)
JavaByteCode platform bağımsız olduğu için, aralarında Windows, Unix, Mac OS ve Linux
platformlarının da bulunduğu birçok platformda çalıştırılabilir.
1.3 Applet sınıfı ve yaşam döngüsü
Appletler yaşamlarında belirli evreler geçirirler. Bunlar ;
a) init
b) start
c) stop
d) destroy
methodlarıdır.
init : İnit metodu applet sınıfı yüklenmeden önce çalışan özel bir methodtur. Applet sınıfından
kalıtılarak gelmiştir ve üzerine yazılarak ( Override ) işlem yapılır.
Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında
çalışmaya başlar.
Stop : Eğer çalışan bir applet dosyasının bulunuduğu sayfadan başka bir URL’ye geçiş yaparsanız veya
sayfanızı tamamen kapatırsanız. Applet sınıfında ilk olarak “stop” methodu çalışır. Stop methodu da
“Applet” sınıfından kalıtılarak gelmiştir ve üzerine yazılarak kullanılır.
Destroy : Applet bulunan sayfalarınızdan birini kapattığınızda veya başka bir URL’ye geçtiğinizde, ilk
olarak stop methodu ardından son olarak çöp toplayıcı method çalışır. Bu methodu tetikleyen method
“destroy” methodudur. Destroy methodu Applet sınıfından kalıtılarak gelir ve genellikle üzerine
yazılmaz.
Bir applet sınıfının hayat döngüsü aşağıdaki gibi olur, stop edilmiş bir applet dosyası init edilmeden
tekrar start edilebilir.
2
CREATOR -> INIT -> START <--> STOP-> DESTROY
Çizim methodları : Paint – Update – Repaint
Paint : bu method parametre olarak Graphics sınfından bir nesne alır, JVM tarafından gönderilen cizim
nesnesi kullanılarak Appletler üzerine çizim işlemleri yapılabilir.
Update : Bu method da aynı paint methodu gibi çalışır, yalnız paint methodundan farkı bu method
çağrıldığı zaman çalışır ve yaptığı çizimleri önceki çizimlerin üzerine geçirir. Oysa paint methodu
çağrılmasa da varsayılan olarak genellikle start methodundan sonra çalışır, ayrıca paint methodu çizim
yaparken öncek çizimleri siler.
Repaint : Paint methodunu bir daha çağrılmasını sağlar. Kısacası sayfanın yenilenmesi sürecini işletir
diyebiliriz.
1.4 JavaApplet'in Avantajlari ve Dezavantajlari
Avantajları:



Linux, Windows ve MacOS üzerinde çalışmasını sağlamak kolaydır (cross-platform)
Makina üzerinde aynı anda farklı Java versionaları kurulu olabileceği gibi, bir Java Applet,
makinaya kurulu herhangi bir Java versionu ile çalıştırılabilir. Çalışırken, sadece son versiona
bakılmayacaktır. Fakat JavaApplet yeni version bir JRE istiyorsa ve bu version makinada
kurulu değil ise öncelikle gerekli JRE kurulmalıdır.
Kullanıcının onaylaması durumunda uygulamanın çalıştırıldığı makinaya tam erişim sağlama
imkanına sahiptir.
Dezavantajları:




Java plug-in yüklenmeden bir Java Applet'i çalıştırmak mümkün değildir.
64 bitlik sistemlerde Sun tarafından yazılmış bir Java plug-in yoktur. Fakat, çeşitli open source
projeler bu açığı kapatmaya çalışıyorlar.
Java Virtual Machine olmadan çalışamaz, bu da ilk çalışma sırasında önce JVM hafızaya
çıkacağı için bekleme süresini biraz uzatacaktır.
Applet'ler JRE'nin belli bir versionuna ihtiyaç duyabilirler.
2. İlk Java appletinin Yaratılmasi ve Çalıştırılması
Bu bolumde bir java appletinin nasil yaratilip, calistirilacagini gorecegiz.
1. File > New Project Java  Java Application seciniz ve next’e basiniz.
3
2. Yeni bir applet yaratmak icin, File new file seciniz.
3. JApplet seciniz.
4
4. Class Name kismindan appletinize NewJApplet ismini yaziniz ve Finish’e basiniz.
5. Kodu yaziniz.
5
6. Shift + F6 veya Debug’dan calistiriniz.
7. Java Applet’inizin goruntusu iste boyle olacaktir.
6
8. HTML olarak açmak için; NetBeansProjects JavaLibrary1 build'den .html uzantılı dosyayı
çalıştırırız.
7
3. Java Applet üzerine Form Nesnelerini Eklemek
Form olusturmak için bize gerekli olan nesneler sunlardır;

Label

TextField

TextArea

CheckBox

Buton
Bu nesneleri ilk önce olusturmamız gereklidir. Daha sonra olusturdugumuz nesnelerin gorunmesini
saglamak icin
add();
komutunu kullanmamız gerekiyor.Bu komut sayesinde olusturdugumuz nesneler applet uzerınde
gozukucektir.Bu komutla eklemezsek kesinlikle nesnelerimiz gözükmüycektir.
3.1 TextArea Kullanımı
Textarea Kullanıcıların form nesnelerine görüş ve fikirlerini yazdıgı uzun metinli form nesnesidir.
8
import java.awt.*;
import java.applet.Applet;
public class TextAreaSimpleTest extends Applet {
TextArea disp;
public void init() {
disp = new TextArea("Code goes here", 10, 30);
add(disp);
}
}
3.2 TextField: TextField sınıfı, kullanıcı tarafından bir ya daha çok satır girşi yapılması düşünülen
alanları tanımlamak için kullanılır. Burdaki satır sayısı TextField yaratılırken atanan maksimum değere
bağlıdır.
import java.awt.*;
import java.applet.Applet;
public class TextFieldSimpleTest extends Applet {
public void init() {
TextField f1 =
new TextField("type something");
9
add(f1);
}
}
3.3 Buton: Buton tek satırlık, fare ile tıklanabilen bir label’dır.
import java.awt.*;
import java.applet.Applet;
public class ButtonTest extends Applet {
public void init() {
Button button = new Button("OK");
add(button);
}
}
3.4 Label :
import java.awt.*;
import java.applet.Applet;
public class LabelTest extends Applet {
public void init() {
add(new Label("A label"));
10
// right justify next label
add(new Label("Another label", Label.RIGHT));
}
}
3.5 Checkbox: Checkbox üzerinde basılan buton bulunan bir label’dır. Checkbox basıldığı zaman true
basılmadığı zaman ise false değerini alır. Başlangıçta false olarak tanımlanır.
import java.awt.*;
import java.applet.Applet;
public class CheckboxSimpleTest extends Applet {
public void init() {
Checkbox m = new Checkbox("Allow Mixed Case");
add(m);
}
}
Örnek 1: Textfield, Button ve Label içeren Kullanıcı adı ve şifre soran bir örnek bir uygulama
import java.awt.*;
import java.applet.Applet;
public class Layouts extends Applet
{
TextField tf1;
TextField tf2;
Button bt1;
Label lb1;
Label lb2;
Panel p1;
11
public void init()
{
p1=new Panel();
p1.setBackground(Color.yellow);
p1.setLayout(new FlowLayout(FlowLayout.LEFT));
lb1=new Label("Kullanıcı Adı: ");
tf1=new TextField(25);
lb2=new Label("Şifreniz: ");
tf2=new TextField(25);
bt1=new Button(" OK ");
p1.add(lb1);
p1.add(tf1);
p1.add(lb2);
p1.add(tf2);
p1.add(bt1);
add(p1);
}
}
Örnek 2: Bütün Form nesnelerinin bir arada kullanıldığı bir örnek
package NewApplet;
//kendiliğinden gelir buna herhangi bir düzenleme gerekmez
import java.awt.*;
import java.applet.Applet;
/*yukarı daki 2 satırda applet'ımıza kulalndığımız kodlara bağlı olarak gerekli olan
kütüphaneleri ekledikl*/
public class NewApplet extends Applet {
//classımızı oluşturduk bu class adı dosya adıyla aynı olmalıdır
public void init() {
setBackground(Color.white);//applet'ımızın arkaplan renginiz seçtik
Label lbKadi = new Label("kullanıcı adınızı girin; ");
/*burada "lbKadi" nesnemizin etiketidir ve programın devamında bu
nesneyi kontrol etmek için bu adı kullanacağız isimdeki "lb" bölümü
12
nesnenin türünüün Label olduğunu gösterir "Kadi" bölümü nesnenin
adıdır*/
Label lbSifre = new Label("şifrenizi girin; ");
Label IbSifre2 = new Label("şifrenizi doğrulayın;");
Label lbmail1 = new Label("mail adresnizi girin; ");
Label lbmail2 = new Label(" mail adresinizi doğrulayın; ");
Label lbCinsiyet = new Label("Cinsiyetin;
");
Label lbprogram = new Label("bildiğiniz diller; ");
Label lbdogum = new Label("doğum tarihinizi girin;");
//yukarıdaki 8 kod satırında applet'mıza gerekli LABEL'ları oluşturduk
TextField txtKadi = new TextField(10);
/*burada "txtkadi" nesnemizin etiketidir ve programın devamında bu
nesneyi kontrol etmek için bu adı kullanacağız isimdeki "txt"
bölümü nesnenin türünün Textfield olduğunu gösterir "Kadi" bölümü
ise nesnenin adıdır */
TextField txtSifre = new TextField(10);
TextField txtSifre2 = new TextField(10);
TextField txtmail1 = new TextField(10);
TextField txtmail2 = new TextField(10);
TextField txtd1 = new TextField(2);
TextField txtd2 = new TextField(2);
TextField txtd3 = new TextField(4);
TextField txtdiger = new TextField(10);
//yukarıdaki 9 kod satırında applet'mıza gerekli TEXTFİELD'ları oluşturduk
CheckboxGroup cbCins = new CheckboxGroup();
// bu satırda ise "cbCins" adında yeni bir checkboc gubu oluşturduk
Checkbox cbjava = new Checkbox("java - jscript");
/*burada "cbjava" nesnemizin etiketidir ve programın devamında bu
nesneyi kontrol etmek için bu adı kullanacağız isimdeki "cb" bölümü
nesnenin türünün CHECKBOX olduğunu gösterir "java" bölümü ise
nesnenin adıdır ("java - jscript") bölümünde "" içinde yazanlar
checkbox'ımızın içinde yazacak olanlarıdr*/
Checkbox cbphp = new Checkbox("php - mysql");
Checkbox cbasp = new Checkbox("asp - asp.net");
Checkbox cbyok = new Checkbox("hiçbir dili bilmiyorum");
Checkbox cbdiger = new Checkbox("diğer");
Button gonderbtn = new Button("Gönder");
/*burada "gonder" nesnemizin etiketidir ve programın devamında bu
nesneyi kontrol etmek için bu adı kullanacağız buton eklerken buton
ismine herhangi özel bir değer eklememize gerek yoktur(cbjava daki
"cb" gibi) ("Gönder") bölümünde "" içinde yazanlar buton'umuzun i
üstünde yazılacaktır*/
13
Button temizlebtn = new Button("temizle");
/*yukarıdaki 2 kod satırında applet'mıza gerekli buton'ları
Oluşturduk*/
add(lbKadi);
add(txtKadi);
add(lbSifre);
add(txtSifre);
add(IbSifre2);
add(txtSifre2);
add(lbmail1);
add(txtmail1);
add(lbmail2);
add(txtmail2);
add(lbdogum);
add(txtd1);
add(txtd2);
add(txtd3);
add(lbCinsiyet);
add(new Checkbox("Erkek
", cbCins, true));
add(new Checkbox("Kadin
", cbCins, false));
/*yukarıdaki 2 satırda cbCins checkbox grubunun içine 2 tane checkbox
oluşturduk ve aynı zamanda bunları applet'ımıza eklemiş olduk*/
add(lbprogram);
add(cbjava);
add(cbphp);
add(cbasp);
add(cbyok);
add(cbdiger) ;
add(txtdiger);
add(gonderbtn);
add(temizlebtn);
/*yukarıdaki 26 kod satırında daha önceden oluşturduğumuz
nesneleri applet'ımızın içine ekledik "add" eklememiz için gerekli
olan komut veparantez içindekilerde nesnelerimizin etiketleri
yani tür ve isimlerini içinde barındıran tam isimleridir*/
}
}
14
Örnek 3: Form Nesnelerinin Hizalanmasına örnek bir uygulama
import java.awt.*;
import java.applet.Applet;
public class NewApplet extends Applet {
Label UserNameL = new Label("Kullanıcı Adı");
Label PassWordL = new Label("Şifre");
TextField UserNameT = new TextField(25);
TextField PassWordT = new TextField(25);
Button Tamam = new Button("Tamam");
15
GridBagLayout Hizalayici = new GridBagLayout();
GridBagConstraints HizalayiciAyar = new GridBagConstraints();
public void ElemanYerlestir(int Xekseni, int Yekseni, int Genislik, int Yukseklik, Component
Eleman) {
HizalayiciAyar.gridx = Xekseni;
HizalayiciAyar.gridy = Yekseni;
HizalayiciAyar.gridwidth = Genislik;
HizalayiciAyar.gridheight = Yukseklik;
Hizalayici.setConstraints(Eleman, HizalayiciAyar);
}
public void init() {
setLayout(Hizalayici);
HizalayiciAyar.insets = new Insets(2, 2, 2, 2);
//HizalayiciAyar.fill = GridBagConstraints.BOTH;
ElemanYerlestir(0, 0, 5, 1, UserNameL);
add(UserNameL);
ElemanYerlestir(6, 0, 5, 1, UserNameT);
add(UserNameT);
ElemanYerlestir(0, 1, 5, 1, PassWordL);
add(PassWordL);
ElemanYerlestir(6, 1, 5, 1, PassWordT);
add(PassWordT);
ElemanYerlestir(6, 2, 2, 1, Tamam);
add(Tamam);
}
}
16
Java Applete Resim Eklemek
JAaplet ta birden fazla resim ekleme bu şekilde olur.
import java.awt.FlowLayout;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JLabel;
public class NewJApplet extends JApplet {
JLabel Deneme = new JLabel();
ImageIcon Resim = new ImageIcon();
JLabel Deneme2 = new JLabel();
ImageIcon Resim2 = new ImageIcon();
JLabel Deneme3 = new JLabel();
ImageIcon Resim3 = new ImageIcon();
public void init() {
setLayout(new FlowLayout());
Deneme.setIcon(new ImageIcon(getImage(getDocumentBase(), "a.gif")));
Deneme2.setIcon(new ImageIcon(getImage(getDocumentBase(), "b.gif")));
Deneme3.setIcon(new ImageIcon(getImage(getDocumentBase(), "c.gif")));
add(Deneme);
add(Deneme2);
add(Deneme3);
}
}
ilk once resmi nereye kaydedicegimiz ayarlanır.
17
kaydet dedikten sonra resmi netbeans projects ye gireriz..
ve ordan hangi proje ise o projenın icine gireriz
18
ve enson olarak build dosyasına girerek resimleri oraya kaydederiz.
Dosyalar buraya kaydedilmıstir.
19
sonucta 3 ayrı resmi bir JApplet uygulamasında kullanmış olduk.
Çalışma 1 : Aşağıdaki gibi bir form hazırlayınız.
20
Calışma 2 : Basit bir hesap makinesi yaratınız.
21
Download