18 Kasım 2012 Pazar

NetBeans İle Görsel Programlama

NetBeans Ortamında Görsel Olarak Hazırladığım Basit Bir Java Programı

Java Örnek Program
Bu program sadece bir sayının başka bir sayı ile bölümünden kalanı buluyor. Yani o sayının modunu alıyor. Biliyorum program çok basit ama burda önemli olan görsel öğelerin tasarlanması ve uygulaması. Normalde Java dilinde kalan hesaplamak için % operatörü(Mod operatörü) kullanılır. Mesela 24'ün mod 5'e göre değeri yani 24'ün 5'e bölümünden kalan 4'tür. Bunun Java dilindeki ifadesi 24%5 şeklindedir. Ancak ben bu programda başka bir yol kullandım. Kalanı hesaplayan algoritmanın denklemi şu şekildedir.




Kalan = Bölünen -(Bölünen/Bölen)*Bölen

Burada Bölünen ve Bölen Integer tipinde olduğundan bilgisayar hesaplamayı yaparken Bölünen/Bölen işlemi sonucunda bulunan ondalıklı sayının sadece tam kısmını alacak, ondalıklı kısmını atacaktır. Sonuç olarak denklem kalanı ya da diğer adıyla o sayının modunu vercektir.

NetBeans görsel tasarım ortamı aşağıdaki gibidir.

NetBeans Görsel Tasarım Ortamı

Program işe şu şekildedir

Programda iki ayrı Java Class'ı var ilki KalanHesaplama.java;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package kalanhesapla;

/**
*
* @author turgut
*/
public class KalanHesaplama extends javax.swing.JFrame {

/**
* Creates new form KalanHesaplama
*/
public KalanHesaplama() {
initComponents();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

jDesktopPane1 = new javax.swing.JDesktopPane();
hakkinda = new javax.swing.JInternalFrame();
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
kalanhesapla = new javax.swing.JInternalFrame();
bolunenyaz = new javax.swing.JTextField();
bolenyaz = new javax.swing.JTextField();
bolumyaz = new javax.swing.JTextField();
kalanyaz = new javax.swing.JTextField();
hesaplat = new javax.swing.JButton();
sil = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
Baslat = new javax.swing.JMenuItem();
cikis = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
hakkindamenu = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Kalan Heaplayıcı");

hakkinda.setClosable(true);
hakkinda.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
hakkinda.setTitle("Hakkında");
hakkinda.setVisible(false);

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel1.setText("Kalan Hesapla");

jLabel4.setText("Kişisel Java tabanlıeEğitim yazılımları çalışmalarım");

jTextArea1.setBackground(new java.awt.Color(227, 235, 247));
jTextArea1.setColumns(20);
jTextArea1.setEditable(false);
jTextArea1.setFont(new java.awt.Font("Verdana", 1, 10)); // NOI18N
jTextArea1.setForeground(new java.awt.Color(102, 102, 102));
jTextArea1.setRows(5);
jTextArea1.setTabSize(6);
jTextArea1.setText("Java eğitim yazılımı çalışmaları\n\nİletişim :\naarslan_tturgut@hotmail.com");
jTextArea1.setAutoscrolls(false);
jScrollPane1.setViewportView(jTextArea1);

javax.swing.GroupLayout hakkindaLayout = new javax.swing.GroupLayout(hakkinda.getContentPane());
hakkinda.getContentPane().setLayout(hakkindaLayout);
hakkindaLayout.setHorizontalGroup(
hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(100, 100, 100)
.addComponent(jLabel4))
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
hakkindaLayout.setVerticalGroup(
hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 14, Short.MAX_VALUE))
);

hakkinda.setBounds(10, 20, 300, 150);
jDesktopPane1.add(hakkinda, javax.swing.JLayeredPane.DEFAULT_LAYER);

kalanhesapla.setClosable(true);
kalanhesapla.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
kalanhesapla.setTitle("Kalan Hesapla");
kalanhesapla.setVisible(false);

bolunenyaz.setText("Bölünen");
bolunenyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bolunenyazActionPerformed(evt);
}
});

bolenyaz.setText("Bölen");
bolenyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bolenyazActionPerformed(evt);
}
});

bolumyaz.setEditable(false);
bolumyaz.setText("Bölüm");

kalanyaz.setEditable(false);
kalanyaz.setText("Kalan");
kalanyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kalanyazActionPerformed(evt);
}
});

hesaplat.setText("Hesapla");
hesaplat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hesaplatActionPerformed(evt);
}
});

sil.setText("Sil");
sil.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
silActionPerformed(evt);
}
});

javax.swing.GroupLayout kalanhesaplaLayout = new javax.swing.GroupLayout(kalanhesapla.getContentPane());
kalanhesapla.getContentPane().setLayout(kalanhesaplaLayout);
kalanhesaplaLayout.setHorizontalGroup(
kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addGroup(kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(bolunenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bolenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bolumyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kalanyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addComponent(hesaplat)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sil)))
.addContainerGap(32, Short.MAX_VALUE))
);
kalanhesaplaLayout.setVerticalGroup(
kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addContainerGap()
.addComponent(bolunenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bolenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bolumyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(kalanyaz, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(hesaplat)
.addComponent(sil))
.addContainerGap())
);

kalanhesapla.setBounds(70, 20, 190, 240);
jDesktopPane1.add(kalanhesapla, javax.swing.JLayeredPane.DEFAULT_LAYER);

jMenu1.setText("File");

Baslat.setText("Başla");
Baslat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BaslatActionPerformed(evt);
}
});
jMenu1.add(Baslat);

cikis.setText("Çıkış");
cikis.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cikisActionPerformed(evt);
}
});
jMenu1.add(cikis);

jMenuBar1.add(jMenu1);

jMenu2.setText("Yardım");

hakkindamenu.setText("Hakkında");
hakkindamenu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hakkindamenuActionPerformed(evt);
}
});
jMenu2.add(hakkindamenu);

jMenuBar1.add(jMenu2);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
);

pack();
}//


private void hakkindamenuActionPerformed(java.awt.event.ActionEvent evt) {
hakkinda.show();
}

private void BaslatActionPerformed(java.awt.event.ActionEvent evt) {
kalanhesapla.show();
}

private void cikisActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void bolenyazActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void bolunenyazActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void kalanyazActionPerformed(java.awt.event.ActionEvent evt) {

}

private void silActionPerformed(java.awt.event.ActionEvent evt) {
kalanyaz.setText("Kalan");
bolunenyaz.setText("Bölünen");
bolumyaz.setText("Bölüm");
bolenyaz.setText("Bölen");

}

private void hesaplatActionPerformed(java.awt.event.ActionEvent evt) {
islem calis=new islem();
String sonucu=calis.sonuc(bolunenyaz.getText(), bolenyaz.getText());
kalanyaz.setText("Kalan : "+sonucu);
bolumyaz.setText("Bölüm : "+Integer.toString(calis.bolum));

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//


/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new KalanHesaplama().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenuItem Baslat;
private javax.swing.JTextField bolenyaz;
private javax.swing.JTextField bolumyaz;
private javax.swing.JTextField bolunenyaz;
private javax.swing.JMenuItem cikis;
private javax.swing.JInternalFrame hakkinda;
private javax.swing.JMenuItem hakkindamenu;
private javax.swing.JButton hesaplat;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel4;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JInternalFrame kalanhesapla;
private javax.swing.JTextField kalanyaz;
private javax.swing.JButton sil;
// End of variables declaration
}
İkinci Java Class'ı ise islem.java;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package kalanhesapla;

/**
*
* @author turgut
*/
public class islem {

int bolunen;
int bolen;
int bolum;
int kalan;
public String sonuc(String b,String b1){
String kalani="";
bolunen=Integer.parseInt(b);
bolen=Integer.parseInt(b1);
bolum=bolunen/bolen;
kalan=bolunen-(bolunen/bolen)*bolen;
kalani=Integer.toString(kalan);
return kalani;
}
}



Turgut Arslan

13 Kasım 2012 Salı

Windows 7'de ipconfig Çalışmıyor

Eğer bir Windows Vista ya da Windows 7 kullanıcısıysanız, DOS ekranında 'ipconfig /all' ya da 'nslookup' gibi özel komutları çalıştırmak istediğinizde şöyle bir uyarı ile karşılaşabilirsiniz:
'ipconfig iç' veya dış komut, çalıştırılabilir program ya da toplu iş dosyası olarak tanınmıyor.
ipconfig iç veya dış komut, çalıştırılabilir program ya da toplu iş dosyası olarak tanınmıyor.


Bu durmda dos komutlarının tümünü Windows 7 ya da Windows Vista'da çalıştırabilmek için aşağıdaki adımları uygulayın.

1. Başlat - Çalıştır'a cmd yazın ve açılan başlat menüsünde en yukarıda beliren "cmd.exe" seçeneği belirsin.

windows 7 de cmd komutu
2. Bu menüdeki "cmd.exe" seçeneğine sağ tuşla tıklayın ve açılan menüden "Yönetici Olarak Çalıştır - Run As Administrator" seçeneğini seçin
Bu adımdan sonra artık komut satırını yönetici olarak çalıştırdığınız için açılan DOS ekranında ihtiyacınız olan tüm DOS komutlarını kullanabilirsiniz.

5 Kasım 2012 Pazartesi

Google Chrome Kullanmak

İnternette Daha Hızlı ve Eğlenceli Bir Gezinti İçin Google Chrome İndirin

Google Chrome İndir
Yüzlerce eklentisi, baş döndüren hzı ve kolay kullanımı ile Google Chrome Tarayıcı hem internet tutkunlarının, hem de web developerların tüm ihtiyaçlarını fazlasıyla karşılıyor. Sisteminize kolayca kurulabilmesi, kullanıcı isteklerine hızla cevap verebilmesi ve üstün stabil yapısı, Chorme Web Browser'ı internet dünyasının vazgeçilmezi yapıyor. İnternette kasılmadan, takılmadan çökmeden sörf yapmak ve istediğiniz bilgiye hızla ulaşmak için Google Chrome kullanın.

4 Kasım 2012 Pazar

JQuery Karikatür Slider

JQuery Karikatür SlideShow

JQuery ile yapılmış iki farklı sliderı birleştirdim ve bir karikatür slideshow'u hazırladım. Ancak buradan aldığınız kodları kendi sitenizde kullanırken CSS kodlarında değişiklik yapmak zorunda kalabilirsiniz. Çünkü ben bilgisayarımda hazırladığım slider kodlarını bloguma aktarırken değişiklik yapmak zorunda kaldım haberiniz olsun.


Umut Sarikaya Hayatin anlami Kosünüs Yigit Özgür Kardanadam Kurban Karikatürü Erdil Yasaroglu Yigit Özgür Deli Karikatürü Kiza Arkadaslik teklifi yigit Özgür Bahane Erdil Yasaroglu Umut Sarikaya Karl Marks Firavun Karikatürü Erdil Yasaroglu
Bu sliderın kodlarını aşağıdan kopyalayabilir, kendi sitenize bir JQuery SlideShow koyabilirsiniz.


Turgut Arslan

12 Ekim 2012 Cuma

Java'da Döngüler: For Döngüsü

Java İç İçe For Döngüsü

Döngüler programcılıkta belirli bir işi istenen sayıda tekrarlamak için kullanılır. C,C++,PHP gibi programlama dillerinde de olduğu gibi Java'da da for döngüsü bulunmaktadır. for döngüsü ana hatlarıyla aşağıdaki gibidir.
for (int sayac = başlangıç değeri; sayaç <= sınır değeri; sayac artım miktarı)  // 1. kısım
{
döngü içinde gerçekleştirilen işlemler...    // 2. kısım
}
for döngüsü iki ana kısımdan oluşur.

1. kısımda döngünün kaç kez döneceği belirlenir.  bu kısımda ilk olarak döngünün kaç kez döndüğünü sayan sayaç değişkeni isimlendirilir ve bu değişkene bir başlangıç değeri atanır. sayaç görevi görecek değişken integer tipinde olmalıdır. Sayaç değişkeni isimlendirilirken Türkçe karakterler ve rakamlar kullanılmaz. Altçizgi tire gibi özel işaretler de kullanmayın. Sonra sayacın sınır değeri belirlenir. En sonunda da sayacın artım miktarı belirlenir.

2. kısımda yani süslü parantezler içinde döngüde yapılması istenen işlemler,kodlar yazılır.

 for döngüsü çalışırken sayaç değişkenine ilk değeri atanır ve hemen 2. kısma geçilerek döngü işlemler sırasıyla satır satır uygulanır. Program  for döngüsünün alt parantezine geldiğinde en başa döner ve ilk önce sayacın sınır değerine ulaşıp ulaşmadığı kontrol edilir. Eğer sayac sınır değere ulaşmışsa döngü durur. Ulaşmamışsa sayaç değeri önceden belirlenen artım miktarı kadar arttırılır ve yeniden döngüye girilir.

Java'da for döngüsü tek başına kullanılabildiği gibi ihtiyaca göre içi içe de kullanılabilir. Aşağıda  Java'da iç içe yazılmış bir for döngüsü örneği bulunmaktadır.

public class fordonguyildiz {
    public static void main(String[ ] args){
        for(int satir = 0; satir < 4; satir++){ // 1.  For Döngüsü (Dış Döngü)
            System.out.print("*");
            for(int sayac = 0; sayac < satir; sayac++){ // 2. For Döngüsü (İç Döngü)
                System.out.print("*");

                } // İç döngü sonu

System.out.print("\n"); // bu kod çıktıda  satır atlatmak için
        } // Dış döngü sonu

    } // main method sonu

} // class fordonguyildiz sonu


Eğer kodlamayı doğru yaparsanız bu Java örnek kodu aşağıdaki gibi bir çıktı verecektir.

*
**
***
****

Bu Java kod örneğini Eclipse ya da NetBeans editörlerinde yazıp çalıştırabilirsiniz. Eğer editör kullanmak istemiyorsanız şunları yapın.
1 - Öncelikle bilgisayarınızda JDK'nın kurulu olduğundan emin olun. Yoksa buradan indirebilirsiniz.
2- Sonra bu kodları notpad'e kopyalayın ve Farklı Kaydet'ten uzantısı .java olacak şekilde  fordonguyildiz adıyla kaydedin.
3- Başlat-Çalıştır' a cmd yazın ve DOS ortamına geçin. ardından java dosyanızın bulunduğu dizine girin.
4 - Burada  javac fordonguyildiz.java  kodunu girdiğinizde JDK dosyanızı derler ve aynı yerde fordonguyildiz.class adlı bir dosya oluşturur.
5- Yine aynı yerde şu kodu yazın ve class dosyanızı çalıştırın.  java fordonguyildiz
Eğer herşeyi doğru yaptıysanız Java örnek programınız başarıyla çalışacaktır.


Turgut Arslan

8 Ekim 2012 Pazartesi

exeLearning Açılmama Sorunu

eXeLearning Neden Açılmıyor?

exelearning
Özellikle bilgisayarınızda Mozilla Firefox'un 4.0 ve üzeri versiyonları yüklüyse eXeLerarning Programını başarı ile kursanız bile program çalışmayacaktır. Firefox eXeLearning'i çalıştırmak istediğinizde
"Uzak XUL
Bu sayfa, artık Firefox'ta varsayılan olarak bulunmayan ve desteklenmeyen bir teknolojiyi kullanıyor."
Hatası olan bir mesaj verecektir. Bu durumda ilk olarak açık olan Firefox tarayıcısını tamamen kapatın. Ardından eXeLearning Editörünü çalıştırın. Eğer kurulumunu doğru yaptıysanız Windows7 işletim sistemi üzerinde bile sorunsuz olarak açılacaktır. Ardından Firefox programını da rahatlıkla çalıştırabilirsiniz. 


Turgut Arslan

7 Ekim 2012 Pazar

JDK Nedir? JRE Nedir? JVM Nedir?

Java'nın Temel Terimleri


Java Development Kit(JDK) Nedir?

Java'da yazılan programların derlenip çalıştırılmalarını sağlayan, içinde çok sayıda kütüphanenin bulunduğu program paketidir.JDK'yı buradan indirebilirsiniz.

Java Runtime Enviroment (JRE) Nedir?

JDK'nın kurulumu ile gelen(siz isterseniz ayrıca kurabilirsiniz) Java'da yazılıp derlenen uygulamaların çalıştırılması için kullanılan kütüphaneler topluluğudur. JRE'yi ayrıca buradan indirebilirsiniz.

Java Virtual Machine(JVM) Nedir?

JVM Java Sanal Makinesi anlamına gelir. Java ile geliştirdiğiniz uygulamaların bilgisayar üzerinde çalışmasını sağlar. JVM derlenmiş olan kodları makine diline çevirir. Java'da ürettiğiniz uygulamlar JVM üzerinde çalışır. JVM yazdığınız Java programı ile bilgisayar arasındaki iletişimi sağlar. JVM yorumlama işlemlerini, JRE'nin kütüphanelerini kullanarak yapar. Java'da yazdığınız bir programın, bir bilgisayar üzerinde çalışabilmesi için o bilgisayarda kullanılan işletim sistemine uygun JVM'nin kurulmuş olması yeterlidir. Bu da Java programları için platform bağımsızlığı sağlar. JVM sayesinde Java'da yazılan programlar, MAC OS, Linux veya Windows İşletim sistemlerinde rahatlıkla çalışabilir.

27 Eylül 2012 Perşembe

SCORM Ders Örneği

SCORM İçerik Örneği

SCORM Ders Örneği

Açık Kaynak Kodlu LMS Programlarının Yerel Ağ Üzerinde Uygulanması adlı seminerimi SCORM ders biçimi haline getirdim. Aşağıda verdiğim linklerde Hem SCORM 1.2 hem de SCORM 2004 standartlarında paketlenmiş dosyalar bulunmaktadır. Bu paketleri MOODLE ortamında denedim. MOODLE ile SCORM editör olarak NOTTINGHAM Üniversitesinin bir çalışması olan XERTE programını kullandım. Bu program ile ders içeriklerinizi FLASH formatında hazırlayıp SCORM standartlarında içerik paketleri oluşturabilirsiniz. Ben Xerte 2.17 sürümünü kullandım.

Xerte
Xerte kullanmak isteyenler için bir uyarı yapmak istiyorum. Bu editör  ile oluşturduğunuz SCORM paketleri MOODLE ile uyumsuzluk yapabiliyor. MOODLE'da SCORM ders biçimi için dosya yüklemek istediğinizde XML karakter hatası alabilirsiniz. Bu durumda şunları yapın.
 
  1. Oluşturduğunuz SCORM paketini bir klasöre açın. Tüm dosyaları unzip yapın.
  2. Bu dosyalar arasında imsmanifest.xml dosyasını bulun ve Dreamweaver ya da benzeri bir programla açın.
  3. Dreamweaver ortamında üst menüden Modfy => Page Properties yolunu takip edin ve açılan menüdeki seçenekleri resimdeki gibi yapın.
imsmanifest.xml düzenlemek
4. Son olarak tüm dosyaları yeniden zip formatında sıkıştırın. Sıkıştırdığınız dosya formatının zip olmasına dikkat edin.



SCORM LESSON SAMPLES Download Links:


Açık Kaynak Kodlu LMS Programlarının Yerel Ağ Üzerinde Uygulanması SCORM 1.2  >>İndir<<
Açık Kaynak Kodlu LMS Programlarının Yerel Ağ Üzerinde Uygulanması SCORM 2004 >>İndir<<


Turgut Arslan

10 Eylül 2012 Pazartesi

Java'ya Başlamak

Java Başlangıç

Java kodlaması kolay ve eğlenceli bir dildir. Ancak Java'da, PHP ve PHP tarzı script dillerine göre oldukça katı kurallar hüküm sürmektedir. Java'da oluşturulan değişkenlerin tip korumalı olması bu kurallaın başında gelir. Java'da Integer(tamsayı) tipinde oluşturulan değişkenlere double String ya da Character tipinden değerler atayamazsınız. Sayısal değişkenlere sayısal değerler, karakter değişkenlerine karakter değerleri atanabilir. PHP'de ise sayısal değer atadığınız bir değişkene programın başka bir yerinde karakter değerleri(harfler semboller vs.) atayabilirsiniz. PHP'de tip koruması yoktur. Esaen Java ile kodlamayı kolaylaştıran  Netbeans ve Eclipse adlı program geliştime ortamlarının varolmasıdır. Bu programlar yazdığınız kodları özelliklerine göre renklendirir. Ayrıca yazım hatalarını denetleyerek hızlı ve hatasız kodlama imkanı sunar. Netbeans ve Eclipse programlarını internetten ücretsiz olarak indirebilirsiniz.
eclipse
netbeans
Bu konuları daha sonraki Java çalışmalarımızda ayrıntılı olarak inceleyeceğiz. Şimdi programcılığın en köklü geleneğine uyalımve bir "Merhaba Dünya" programı ile Java programlamaya başlayalım.

İlk Java Programım


public class MerhabaDunya{
     public static void main(String[] args){
      String merhaba="Merhaba Dünya";
      System.out.print("Merhaba Dünya");
      System.out.println("Merhaba Dünya");
      System.out.printf("%s",merhaba);
     }// main method sonu

}// MerhabaDunya class sonu

Bu programı Eclipse ya da Netbeans  ortamında yazıp çalıştırırsanız çıktısı şu şekilde olacaktır:
Mehaba Dünya
Merhaba Dünya
Merhaba Dünya

Programın nasıl çalıştığını kısaca inceleyecek olursak;
public class MerhabaDunya programın main(ana) class'ı ile java dosyanız aynı isimde olmalıdır. Aksi takdirde programınız çalışmaz.
 public static void main(String[] args)programınızın main(ana) clas'ı dır.Java programları birbirlerine bağlı birçok class dosyasından oluşabilir. Java Virtual Machine hazırladığınız program classları arasından main methodunun olduğu class'ı arar ve ordan çalıştırmaya başlar .  Programınızın çalışması için hazırladığınız classlardan bir tanesinde main methodunun olması gerekir. 
String merhaba="Merhaba Dünya";  merhaba adında bir String değişkeni oluşturulur ve bu değişkene "Merhaba Dünya" değeri atanır.
System.out.print("Merhaba Dünya"); ekrana "Merhaba Dünya" yazdırır.
System.out.println("Merhaba Dünya"); ekrana bir satır atlatarak"Merhaba Dünya" yazdırır.
System.out.printf("%s",merhaba); ekrana merhaba adlı değişkenin değeri olan "Merhaba Dünya" yazdırır. "%s" değeri ekrana yazdırılacak olan değişkenin bir String değişken olduğunu gösteriri. "System.out.printf()" kodu ekran çıktısının önceden belirlenen formatta yazıdırılmasını sağlar. 

Böylellikle ilk java programımızı da yazmış ve Java ile programlama dünyasına da ilk adımımızı atmış olduk. Hayırlı olsun :))



Turgut Arslan

25 Ağustos 2012 Cumartesi

CSS Margin Kodu

CSS Margin Kodunun Özellikleri

CSS'nin margin kodu ile web sayfasına eklenen elemanın çevresi ile olan dış boşlukları belirlenir. Margin özelliğini kullanarak bir elemanı yerleştirirken üstten alttan sağdan ve soldan ne kadar boşluk bırakmak istediğinizi belirtirsiniz.Margin değerleri yüzde ve piksel gibi web tasarımda kullanılan diğer ölçü birimleri kullanılabilir.  Margin değerlerini negatif olarak verebilirsiniz. Margin kodu tüm tarayıcılar tarafından desteklenmektedir.

Margin kodu nasıl kullanılır?


Margin kodu çeşitli şekillerde yazılabilir. Örnek olarak id'si deneme olan bir div elemanımız olsun. Bu elemana margin değerleri vermek istersek,

#deneme{
   margin-top:5px;           /Elemana üstten 5px boşlk verir./
   margin-left:10px:        /Elemana  soldan 10px boşluk verir./
   margin-right:20px;      /Elemana sağdan 20px boşluk verir./
   margin-bottom:30px;  /Elemana alttan 30px boşluk verir./
}

Margin kodu kısa olarak şu şekilde de kullanılabilir,

#deneme{
   margin: 5px 20px 30px 10px;   /Bu kodlama da aynı sonucu verecektir./
}


Burada margin değerlerinin sıralaması şöyledir;
margin: ust boşluk sağ boşluk alt boşluk sol boşluk
Eğer her yerden eşit boşluk vercekseniz kodlama şu şekilde olmalıdır,

#deneme{
   margin: 10px   /Bu kodlama ile deneme elemanı her yönden 10px boşluk alacaktır./
}

Eğer üstten ve alttan 10px, soldan ve sağdan 20px boşluk bırakmak isterseniz margin kodlamasının kısa yazılış biçimi şu şekilde olacaktır,
#deneme{
   margin: 10px  20px;   /Üstten ve alttan 10px, soldan ve sağdan 20px./
}

Bu yazdığımız kodlama,
#deneme{
   margin: 10px 20px 10px 20px; 
}

yazımının kısaltılmış şeklidir.


Turgut Arslan

24 Ağustos 2012 Cuma

Java Nedir?

Java Programlamaya Giriş

Sun Microsystems
Java programlama dili Sun Microsystems tarafından ilk olarak 1991 yılında geliştirilmeye başlandı. Java aslında Sun Microsystems'in elektronik ev aletlerinin programlanması amacıyla başlattığı bir projedir. Java dili Patrick Naughton, Chis Wartdh, James Gosling, Ed Frank ve Mike Sheridan'ın oluşturduğu bir yazılım grubu tarafından tasarlanmıştır.
Java
İlk zamanlarda bu dilin adı OAK idi. Ancak bu ada sahip başka bir program olduğu öğrenilince programın ismi Java olarak değiştirildi. Bu ismin bir kahve markasından esinlenerek verildiği söylenir. Aslında Java kahve manasına gelmektedir. Özellikle geceleri uzun çalışma saatlerini bilgisayar başında geçiren programcıların en büyük dostunun kahve olduğunu düşünürsek; programın neden bu ismi aldığı hakkında bir fikir sahibi olabiliriz diye düşünüyorum.

Başta da belirttiğimiz gibi Java elektronik ev aletleri için geliştirilmeye başlanmış bir programlama dilidir. Bu alanda gelişminin çok yavaş olması ve istenen verimin tam olarak alınamaması Java projesini bitme noktasına kadar getirmiştir. Ancak Java dilinin marifetleri sadece elektronik ev aletleri ile sınırlı değildi. Java web uygulamaları geliştirmeye izin veren bir dildir. Özellikle 1993'ten sonra dünyada internet iletişiminde yaşanan patlama Sun Microsystems'in java'nın bu özellikleri üzerne yoğunlaşmasını sağlamış ve adeta bu dilin hayatını kurtarmıştır. İlk kez 1995 yılında dünyaya sunulan Java dili çok ilgi görmüş, özellikle dinamik web sayalafının hazırlanmasında gösterdiği performans ve C++ diline yakın bir kodlama yapısına sahip olması, kolay öğrenilebilir olması gibi nedenler Java dilinin popüler bir yazılım dili olmasını sağlamıştır. Java programlama  dili günümüzde özellikle Google'un Android'i ve Nokia'nın Symbian işletim sistemine temel oluşturması ve bu sistemler için üretilen milyonlarca java uygulaması ile mobil teknolojinin gelişmesini sağlamıştır.

Java hız bakımından C++ ve C dilinin biraz gerisindedir. Aslında bu dilin yazıılma amacı daha doğru ve verimli prgramlar yazmak ve program yazmayı kolaylaştırmaktır. Java Nesne tabanlı ya da Nesne yönelimli(Object Oriented) bir programlama dilidir. Yani bu dilin bileşenlerini aslında nesneler oluşturur. Java'da C ve C++'da olduğu gibi yapısal(Structural)progamlar yazılabilse de java gerçek gücünü Nesnelerle çalışırken gösterir. Şimdi şu nesne konusuna kısa bir açıklama yapalım

Nesneye Yönelik Programlama

Tornavida

İlk olarak kendi kendimize soralım. Nesne nedir? Nesneler, çevremizde bulunan, duyu organları ile algılayabildiğimiz; çeşitli özellikleri(renk, koku, tat,boyut ve ağırlık gibi) ve işlevleri(birşey kesmek, bir yere destek olmak, birşey üretmek, hesaplamak vs) olan varlıklardır. Mesela sol resimdeki tornavidayı düşünün. Bu tornavidanın sarı renkli plastik sapı, parlak metal ucu ve düz ağzı sahip olduğu özellikleridir. Bu tornavida ile düz vidaları sıkıp gevşetebilmesi, tornavida nesnesinin işlevi olarak tanımlaabilir.


Düz tornavida ile yıldız başlı vidaları sıkıp gevşetemezsiniz. Yani düz ağızlı tornavidanın bu noktada işlevsel sınırlılığı var. Bu sınırlılık tornavidanın sahip olduğu özelliklerle ilgilidir ve bu özellikler üretim esnasında belirlenir. Bu tornavidayı tamirat yaparken defalarca kullanabilirsiniz. Tornavida her defasında aynı şekilde çalışır ve aynı hizmeti verir. Ayrıca bu tornavidayı özelliklerini bilen başka biri ya da birileri ile ortaklaşa da kullanabilirsiniz.

Buraya kadar gerçek hayattaki nesnelerden bahsettik. Yazılım dünyasında bahsedilen nesne kavramı da aynı şekilde işlemektedir. Yani Nesneye Yönelik programlama yaparken aynı gerçek hayatta bir tornavidayı imal eder gibi programda kullanacağınız nesneleri inşa edersiniz. Ona çeşitli özellikler verirsiniz, işllevler verirsiniz. Sonra da programda gerektiği yerlerde o nesneyi çalışması için çağırırsınız. Aynen lazım olduğunda tornavidayı alıp kullandığınız gibi üretilen nesneleri çağırıp kullanabilirsiniz. Aynı proje üzerinde birden fazla kişinin çalıştığını düşünün. Tornavidayı nasıl çalışma arkadaşınızla ortaklaşa kullanabiliyorsanız, aynı proje içinde üretilen bir nesne de o şekilde ortaklaşa kullanılabilir.

Nesneye yönelik programlamanın mantığı bu şekildedir diyebiliriz. Java'da ürettiğiniz nesneler, çeşitli değişkenler ve method adı verilen fonksiyonlardan oluşur. Nesne içindeki değişkenlerin erişim türleri(public veya protected gibi) yazılımcı tarafından belirlenebilir. Böylelikle bir nesneye ait değişkenlerin değerlerinin yanlışlıkla değiştirilmesi engellenmiş olur. Buraya kadar saydıklarımız Nesneye Yönelik (Object Oriented) programlamanın avantajlarından sadece birkaçıdır.


Turgut Arslan