Algoritma ve Programlama BMÜ 112 Dr. Galip AYDIN
BMU 112 Web http://web.firat.edu.tr/bilmuh/bmu112/ Ders Notları Kaynaklar Araçlar Duyurular
Ders İçeriği Java ile Görsel Programlama Java Appletler JavaFX AWT ve Swing uygulamaları Java Appletler JavaFX Veri Yapıları Diziler, Yığın, Kuyruk, Liste, Ağaç yapıları Nesne Tabanlı Programlama Nesnelerin yeniden kullanımı, Kompozisyon Kalıtım ve Polimorfizm Soyut Sınıflar ve Arayüzler Java ile veritabanı uygulamalarına giriş (JDBC - Java Database Connectivity) Java ile Internet programlamaya giriş Web Servers, (JSP - Java Server Pages)
Kullanılacak Araçlar JDK (Java Development Kit) JDK 6 Update 12 http://java.sun.com/javase/downloads/index.jsp JRE (Java Runtime Environment) NetBeans 6.5 IDE http://www.netbeans.org/downloads/index.html
Projeler Geniş Kapsamlı bir Dönem Projesi Proje Konuları Takımlar (? kişi) Ara raporlar Proje notları
Proje Konu Örnekleri Oyunlar Dosya yöneticisi Super Mario, Tank vs., Trivia, Genel Kültür, Var mısın Yok musun? Dosya yöneticisi Dosya arama, karşılaştırma, duplicate dosyaları bulma, batch dosya işlemleri vs. Web tabanlı otomasyon, kayıt sistemi... Java FX ?
Java Grafik Arabirim Programlama AWT, SWING Dr. Galip AYDIN
AWT, Swing AWT ve Swing AWT, (Abstract Window Toolkit) ilk java ile birlikte gelistirilen temel grafik arayuz olusturma kutuphanesine verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin yetersiz gorulmus ve cok daha genis ve gelismis ozelliklere sahip Swing kutuhanesi sisteme eklenmistir. Ozellikle cok platform destekleyen yazilimlarda kullanici arayuzu gelistirme araci olarak swing halen onemini korumaktadir. Swing, onceleri isletim sisteminin kullandigi donanim grafik hizlandirma araclarini kullanmadigindan yavasligi ile elestirilere hedef olmustu. Ozellikle Java 1.4 ile Swing, hem genel olarak sanal makinenin hizlanmasi ve kismen donanim hizlandirmayi kullanmasi ile bu kotu sohretinden siyrilmaya basladi. Java 1.5 ile donanim, ozellikle OpenGL kullanimi ve yeni arayuz gosterim sekli ile java'nin masaustu uygulama gelistirmede populerlesmesi bekleniyor. AWT halen swingin bir alt katmaninda, temel 2 boyutlu grafik islemlerinde kullanilmaya devam ediyor.
SWT SWT: The Standard Widget Toolkit Swing'e bir alternatif olarak IBM tarafindan gelistirilen bir gosterim sistemidir. Swing'den en buyuk farki calistigi isletim sisteminin grafik kutuphanesi ve komutlarini kullanmasidir. Bu nedenle SWT uygulamalari Swing'e gore cogu yerde daha hizli ve isletim sistemindeki diger uygulamalari andiran bir sekilde calismasini saglar. Swingin Java 1.5 ile performans acigini kapatacagi iddia edilse de SWT'nin de artik java camiasinda kabul gormus bir sistem oldugu asikardir. SWT'nin dezavantaji ise java'nin bir parcasi olmamasidir. yani SWT uygulamalari SWT kutuphanesi ile birlikte dagitilmaktadir. En bilinen SWT uygulamasi unlu java yazilim gelistirme araci Eclipse'tir. Bununla birlikte son yillarda Swing ile profesyonel derecede arayuza sahip masaustu yazilimlari da ortaya cikmistir.
Applet Applet, uzaktaki sistem uzerinden indirilip internet tarayici uzerinde calistirilabilien java uygulamalarina verilen isimdir. Java'nin son kullanicilar tarafindan taninmasi applet sayesinde olmustur dersek yanlis olmaz. Applet'ler sisteme zarar veremeyecek bir sekilde tasarlanmistir ve bugun ozellikle oyun sitelerinde halen yaygin olarak kullanilmaktadir. Icerisinde applet olan bir sayfayi acmaya calistiginizda tarayiciniz otomatik olarak java sanal makinesini calistirip ekranin applet'e ayrilan bolumunde uygulamanin calismasini saglar.
GUI Oluşturma Oluştur: Ekle: Listener Frame/JFrame Panel/JPanel Components Listeners Ekle: Listeners into components Components into panel Panel into frame JButton JLabel JPanel JFrame
GUI Component kullanımı Oluştur Nesneyi başlat: JButton b = new JButton(); Özelliklerini belirle Metodlar: b.setText(“Press me”); Ekle panel.add(b); Dinle Events: Listeners
Örnek import javax.swing.*; class Hello { public static void main(String[] args){ JFrame f = new JFrame(“Merhaba SWING”); JPanel p = new JPanel(); JButton b = new JButton(“TIKLA”); p.add(b); // butonu panele ekle f.getContentPane().add(p); // paneli frame’e ekle f.show(); }
SWING Swing dizaynında kullanılan temel bileşenler Üst seviye Taşıyıcı (Top-level Container) Örnek: JFrame Diğer bütün swing bileşenlerini taşır Diğer seçenekler: JDialog ve JApplet Orta seviye Taşıyıcı (Intermediate Container) Örnek: JPanel GUI bileşenlerinin yerlerini kontrol etmek için kullanılır Aracı olarak hareket eder Diğer seçenekler: JScrollPane, JTabbedPane, … Atomik Bileşenler Örnek: JButton Tek başına işlev sahibi GUI bileşenleri Diğer seçenekler: JTextField, JTable,
Swing Bileşen Hiyerarşisi Üst seviye taşıyıcılar: JFrame, JDialog, JApplet Content pane: JApplet, JDialog, ve Jframe nesneleri için temel taşıyıcı Temel kontroller: JButton, JComboBox, List, Menu, Slider, JTextField, JLabel, progress bar, tool tip Genel amaçlı taşıyıcılar: Panel, scroll pane, split pane, tabbed pane, tool bar
JFrame İç yapısı JPanel JFrame JButton taşıyıcılar JPanel JLabel GUI JButton JLabel
Java GUI Ornekleri