
JAVA DERSLERİ ANASAYFA ÖNCEKİ DERS SIRADAKİ DERS
Konu başlığına tıklayarak detayları görebilirsiniz!!!
Bu dersimizde grafiksel kullanıcı arayüzü (graphical user interface) yazılım dünyasında bilinen adıyla GUI ile ilgili olarak JFrame (pencere), JTextField (yazı alanı) ve JTextLabel (etiket) konularını işleyeceğiz.
Ders18_JFrame adında yeni bir class oluşturuyoruz ve her zamanki gibi main metodumuzu yazıyoruz. Daha önceki derslerde öğrendiğimiz kalıtımsal özellikleri taşımada kullandığımız extends ifadesini kullanarak JFrame paketini dersimizde kullanmamızı sağlıyoruz. Sonrasında class'ımızın başına dersimiz içerisinde belirli noktalarda kullanacağımız java içerisinde kayıtlı bulunan kütüphanelerden JFrame, JLabel, JTextField ve FlowLayout paketlerini aşağıdaki şekilde import ediyoruz. Bu işlemi isterseniz yeri geldiğinde de yapabilirsiniz ama ders akışı açısından şimdiden eklemek işimizi daha da kolaylaştıracaktır.
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.FlowLayout; public class Ders18_JFrame extends JFrame { public static void main (String[] args){
Sonrasında pencere adında yeni bir JFrame oluşturuyoruz. setTitle ile penceremiz için bir "Yeni Pencere" adında bir başlık belirliyoruz. Son olarak da pencermizin görünür olması için setVisible kullanıyoruz. Eğer setVisible kullanmadan çalıştıracak olursak bize hiçbir görüntü vermez. setVisible ifadesinden sonra gelen parantez içerisinde bir boolean yani true ya da false ifadelerinden birini kullanmamız gerekiyor. true ifadesi bize pencerenin görünür olmasını sağlıyor. Bu şekilde yaptığımızda programı çalıştırırsak bize sol üst kçşede küçük bir pencere açtığını görürüz. Penceremizle ilgili şekillendirme işlemlerini bir sonraki bölümde göreceğiz. setVisible'ı dersimiz boyunca kodumuzun sonunda tutmaya özen gösterelim. Yoksa eklediğimiz şeylerin görünmesinde sıkıntı yaşayabiliriz.
JFrame pencere = new JFrame(); pencere.setTitle(“Yeni Pencere”);
Pencerimizin boyutlarını belirlemek için ilk olarak setSize komutuyla penceremin boyutlarını belirtiyorum. setSize en ve boy olarak iki değer alıyor. Ben 800'e 800 olarak belirledim. Bu kodu yazıp programı çalıştırırsanız karşınıza belirtilen büyüklükte bir pencere çıktığını görürsünüz.
pencere.setSize(800, 800);
Programı çalıştırdığınızda pencerenin sol üst köşede çıktığını göreceksiniz. Pencereyi ekranın farklı bir yerinde açmak istiyorsak setLocation kullanıyoruz. Benim ekranımın ortalarında bir yerde çıkması için 400'e 100 olarak lokasyonu belirledim. Bu şekilde programı çalıştırdığınızda ekranınızda pencerenin yerinin değiştiğini göreceksiniz.
pencere.setLocation(400, 100);
Penceremizi oluşturduktan sonra artık içerisine birşeyler yerleştirmeye başlayabiliriz. Bunun için yeni bir FlowLayout oluşturuyoruz. Java kütüphanesinde hazır bulunan FlowLayout öğesini dersimizin başında import etmiştik. Layout'un amacı penceremizde kullanacağımız objeler için bir yerleşim belirlemektir.
pencere.setLayout(new FlowLayout());
Bu kodu yazdığımızda programı çalıştırırsanız penceremizde hiçbirşeyin değişmediğini göreceksiniz.Layout içerisinde ilk objemiz olarak JLabel kullanarak label1 adında bir etiket öğesi oluşturacağız. Bunun için “Java Dersleri” adında yeni bir JLabel oluşturuyoruz. Java kütüphanesinde hazır bulunan JLabel öğesini dersimizin başında import etmiştik. Etiketimizde ne yazmasını istiyorsak onu tırnak içerisinde belirtiyoruz. Hemen sonrasında da pencerimizin içerisinde görünmesi için add diyerek etiketimizin adını parantez içerisinde belirtiyoruz.
JLabel label1 = new JLabel(“Java Dersleri”)); pencere.add(label1);
Etiketimize üzerine geldiğimizde arka plan değiştirme ya da ipucu verme gibi birçok özellik ekleyebiliriz. Mesela üzerine geldiğimizde alt tarafında “Başlangıç Dersleri” diye bir ipucu yazmasını istersek setToolTipText kullanarak bunu yapabiliriz. İpucu olarak ne yazmasını istiyorsak bunu tırnak işaretleri arasında belirtiyoruz.
label1.setToolTipText(“Başlangıç Dersleri”);
Şimdi ise layout'umuz içerisine JTextField kullanarak bir yazı alanı ekleyeceğiz. Java kütüphanesinde hazır bulunan JTextField öğesini dersimizin başında import etmiştik. Yine textField1 adında yeni bir JTextField öğesi oluşturuyoruz. Parantez içerisindeki tırnaklara da bir açıklama metni ekliyoruz. İsterseniz boş da bırakabilirsiniz. Görsel olarak anlam ifade etmesi açısından ekledim ben. Sonrasında yine pencerimizin içerisinde görünmesi için add diyerek yazı alanımızın adını parantez içerisinde belirtiyoruz.
JTextField textField1 = new JTextField(); textField1.setText(“Adınızı Giriniz”); pencere.add(textField1); pencere.setVisible(true); } }
Tüm kodlarımızı yazıp setVisible'ı sonda kullandığımızda oluşturduğumuz pencere aşağıdaki şekilde karşımıza çıkıyor.

TOPLU DERS KODLARI VE KONU ÖZETİ
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.FlowLayout; public class Ders18_JFrame extends JFrame { public static void main (String[] args){ // JFrame kullanarak pencere adında yeni bir pencere oluşturuyoruz JFrame pencere = new JFrame(); pencere.setTitle(“Yeni Pencere”); // setTitle ile penceremize bir ad veriyoruz pencere.setSize(800, 800); // setSize kullanarak penceremizin en boy boyutlarını belirtiyoruz pencere.setLocation(400, 100); // setLocation ile penceremizin ekranımızda nerede çıkmasını istediğimize dair rakamlar giriyoruz pencere.setLayout(new FlowLayout()); // setLayout'u penceremizde bir yerleşim oluşturmak için kullanıyoruz JLabel label1 = new JLabel(“Java Dersleri”)); // JLabel ile Java Dersleri adında yeni bir etiket oluşturuyoruz pencere.add(label1); // add kullanarak oluşturduğumuz label1 adındaki etiketimizi penceremize ekliyoruz label1.setToolTipText(“Başlangıç Dersleri”); // mouse ile etiketimiz üzerine geldiğimizde ipucu vermesi için bir ifade ekliyoruz JTextField textField1 = new JTextField(); // JTextField kullanarak bir yazı alanı oluşturuyoruz textField1.setText(“Adınızı Giriniz”); // setText ile yazı alanımızın içerisine bir açıklama gömüyoruz pencere.add(textField1); // add kullanarak oluşturduğumuz textField1 adındaki yazı alanımızı penceremize ekliyoruz pencere.setVisible(true); // setVisible true diyerek yaptığımız herşeyin görünür olmasını sağlıyoruz // eğer setVisible olmazsa hiçbirşey görünmez ve sonda olması tüm kodlarımızın görünür olmasını sağlayacaktır } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ

Bu dersimizde grafiksel kullanıcı arayüzü (graphical user interface) yazılım dünyasında bilinen adıyla GUI ile ilgili olarak JFrame (pencere), JLabel (etiket) ve JPanel (panel) kullanarak arayüz ile ilgili bilgilerimizi geliştireceğiz.
Ders19_JPanel adında yeni bir class oluşturuyoruz ve her zamanki gibi main metodumuzu yazıyoruz. Daha önceki derslerde öğrendiğimiz gibi class'ımızın başına dersimiz içerisinde belirli noktalarda kullanacağımız java içerisinde kayıtlı bulunan kütüphanelerden JFrame, JLabel, JPanel ve Color paketlerini aşağıdaki şekilde import ediyoruz. Bu işlemi isterseniz yeri geldiğinde de yapabilirsiniz ama ders akışı açısından şimdiden eklemek işimizi daha da kolaylaştıracaktır.
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.Color; public class Ders19_JPanel { public static void main (String[] args){
Sonrasında pencere adında yeni bir JFrame oluşturuyoruz. setTitle ile penceremiz için bir "Renk Diyarı" adında bir başlık belirliyoruz. Bu kısımda ayrıca yeni birşeyler öğrenmek adına programı çalıştırdığımızda açılan penceremizin görüntüsünü değiştirmek için JFrame.setDefaultLookAndFeelDecorated(true); ifadesini kullanıyoruz.
JFrame pencere = new JFrame(“Renk Diyarı”); JFrame.setDefaultLookAndFeelDecorated(true);
Bu adımda JPanel kullanarak penceremiz içerisinde küçük paneller yani bölmeler oluşturacağız. Bunun için ilk olarak diğer panellerimizin içinde yer alacağı anapanel adında bir panel oluşturuyoruz. Aşağıdaki şekilde layout ve background bilgilerini giriyoruz. Layout null olarak belirttiğimiz default layout kullan demiş oluyoruz. Color paketini kullanarak panelimiz için arkaplan rengimizi istediğimiz şekilde belirtiyoruz. Örneğimizde beyazı kullandık.
JPanel anapanel = new JPanel(); anapanel.setLayout(null); anapanel.setBackground(Color.white);
Bir sonraki adımda JLabel'larımız için anapanel içerisinde yeni bir panel oluşturuyoruz. Bu noktada yeni panelimize ait Layout, Location, Size ve Background bilgilerini giriyoruz. Bunları istediğiniz gibi belirleyebilirsiniz. Son olarak da add kullanarak yeni oluşturduğumuz panel1'i anapanel'imize ekliyoruz.
JPanel panel1 = new JPanel(); panel1.setLayout(null); panel1.setLocation(15, 0); panel1.setSize(180, 50); panel1.setBackground(Color.white); anapanel.add(panel1);
Label'larımız için paneli oluşturduktan sonra artık Label'larımızı oluşturabiliriz. Renklerle uğraşacağımız için mavi ve turuncu adında iki Label oluşturuyoruz. ilk olarak setForeground kullanarak Label rengimize göre renkler belirliyoruz (mavi için blue, turuncu için orange gibi). Yine Layout, Location ve Size bilgilerini giriyoruz. Burada farklı olarak bir de setHorizontalAlignment kullanıyoruz. Bu bize yatay olarak Label'ımızın konumunu gösteriyor. Eğer parantez içerisinde 1 kullanırsak sola yasla, 0 kullanırsak ortala, 2 kullanırsak sağa yasla, anlamına geliyor. Son olarak da add kullanarak yeni oluşturduğumuz label'larıımızı panel1'imize ekliyoruz.
JLabel mavi = new JLabel(“mavi”); mavi.setForeground(Color.blue); mavi.setLocation(0, 0); mavi.setSize(60, 30); mavi.setHorizontalAlignment(0); panel1.add(mavi); JLabel turuncu = new JLabel(“turuncu”); turuncu.setForeground(Color.orange); turuncu.setLocation(100, 0); turuncu.setSize(60, 30); turuncu.setHorizontalAlignment(0); panel1.add(turuncu);
Şimdi adet mavi ve turuncu olmak üzere renk kutucuğu oluşturacağız. Bunu için her iki kutucuğumuzun içinde olacağı bir panel ve iki kutucuğumuzu ayrı ayrı panel olarak tanıtıp, özellikler atayacağız.Yine yukarıda yaptığımız şekilde JPanel ile renkKutusu adında bir panel yaratıp, içerisinde her rengimiz için de 2 adet panel yaratıyoruz aşağıdaki şekilde;
JPanel renkKutusu = new JPanel(); renkKutusu.setLayout(null); renkKutusu.setLocation(15, 50); renkKutusu.setSize(180, 80); renkKutusu.setBackground(Color.white); anapanel.add(renkKutusu);
renkKutusu adlı panelimizi yarattıktan sonra şimdi içerisinde yer alacak mavi ve turuncu panellerimizi oluşturabiliriz.
JPanel maviKutucuk = new JPanel(); maviKutucuk.setBackground(Color.blue); maviKutucuk.setLocation(0, 0); maviKutucuk.setSize(60, 60); renkKutusu.add(maviKutucuk); JPanel turuncuKutucuk = new JPanel(); turuncuKutucuk.setBackground(Color.orange); turuncuKutucuk.setLocation(0, 0); turuncuKutucuk.setSize(60, 60); renkKutusu.add(turuncuKutucuk);
Son aşamada ilk olarak setSize ile ana penceremizin büyüklüğünü belirliyoruz. setContentPane ile anapanelimizi penceremize atıyoruz. Ardından setResizable'ı penceremizin büyütülüp küçültülmesinin önlenmesini engellemek için kullanıyoruz. Sadece true veya false ifadeleri alabilir. Parantez içini false yaparsak artık penceremiz sağından solundan çekilip büyültülüp küçültülemez. Yeni bir şey öğrenmiş olalım diye bunu ekledim. Son olarak da daha önceki dersimizde öğrendiğimiz üzere pencermizin görünür olması için setVisible kullanıyoruz. Eğer setVisible kullanmadan çalıştıracak olursak bize hiçbir görüntü vermez.
pencere.setSize(600,400); pencere.setContentPane(anapanel); pencere.setResizable(false); pencere.setVisible(true); } }
Tüm kodlarımızı yazıp setVisible'ı sonda kullandığımızda oluşturduğumuz pencere aşağıdaki şekilde karşımıza çıkıyor.

TOPLU DERS KODLARI VE KONU ÖZETİ
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.Color; public class Ders19_JPanel { public static void main (String[] args){ // JFrame kullanarak 'Renk Diyarı' adında bir pencere oluşturuyoruz JFrame pencere = new JFrame(“Renk Diyarı”); JFrame.setDefaultLookAndFeelDecorated(true); // Penceremizin görünüşünü değiştiriyoruz JPanel anapanel = new JPanel(); // JPanel kullanarak diğer panelleri içerisinde barındıracak bir panel oluşturuyoruz anapanel.setLayout(null); // Layout null olarak belirleyince default olarak algılıyor program anapanel.setBackground(Color.white); // anapanelimizin arkaplanını beyaz olarak belirliyoruz JPanel panel1 = new JPanel(); // Oluşturduğumuz JLabel'ları içinde barındırmak için panel1 adında bir panel oluşturuyoruz panel1.setLayout(null); panel1.setLocation(15, 0); // Panelimizin konumunu dikey ve yatay olarak belirliyoruz panel1.setSize(180, 50); // Panelimizin boyutlarını belirliyoruz panel1.setBackground(Color.white); // Panelimizin arka planını beyaz olarak belirtiyoruz anapanel.add(panel1); // add kullanarak panel1'i anapanelimiz içerisine ekliyoruz JLabel mavi = new JLabel(“mavi”); // JLabel kullanarak 'mavi' adında bir etiket oluşturuyoruz mavi.setForeground(Color.blue); // setForeground kullanarak etiketimizin yazı karakterlerini mavi renk yapıyoruz mavi.setLocation(0, 0); // setLocation ile etiketimizin konumunu belirliyoruz mavi.setSize(60, 30); // setSize kullanarak etkiketimizin boyutunu belirtiyoruz mavi.setHorizontalAlignment(0); // Etiketimizin nerede duracağını belirtiyoruz, 0 ortala için kullanılıyor, 1 sola 2 sağa yasla panel1.add(mavi); // add kullanarak etiketimizi panel1 içerisine ekliyoruz JLabel turuncu = new JLabel(“turuncu”); // JLabel kullanarak bu sefer 'turuncu' adında bir etiket oluşturuyoruz turuncu.setForeground(Color.orange); // setForeground kullanarak etiketimizin yazı karakterlerini turuncu renk yapıyoruz turuncu.setLocation(100, 0); // setLocation ile etiketimizin konumunu belirliyoruz turuncu.setSize(60, 30); // setSize kullanarak etkiketimizin boyutunu belirtiyoruz turuncu.setHorizontalAlignment(0); // Etiketimizin nerede duracağını belirtiyoruz panel1.add(turuncu); // add kullanarak etiketimizi panel1 içerisine ekliyoruz JPanel renkKutusu = new JPanel(); // Daha sonra oluşturacağımız mavi ve turuncu kutucuğu içerecek bir panel daha oluşturuyoruz renkKutusu.setLayout(null); // Layout null olarak belirleyince default olarak algılıyor program renkKutusu.setLocation(15, 50); // setLocation ile panelimizin konumunu belirliyoruz renkKutusu.setSize(180, 80); // setSize kullanarak panelimizin boyutunu belirtiyoruz renkKutusu.setBackground(Color.white); // setBackground kullanaral panelimizin arka planını beyaz olarak belirtiyoruz anapanel.add(renkKutusu); // add kullanarak panelimizi anapanel içerisine ekliyoruz JPanel maviKutucuk = new JPanel(); // Oluşturacağımız mavi kutucuk için bir panel daha oluşturuyoruz maviKutucuk.setBackground(Color.blue); // setBackground kullanarak kutucuğumuzun arka planını mavi yapıyoruz maviKutucuk.setLocation(0, 0); // setLocation ile kutumuzun konumunu belirliyoruz maviKutucuk.setSize(60, 60); // setSize ile kutumuzun boyutunu belirtiyoruz renkKutusu.add(maviKutucuk); // add kullanarak maviKutucuk adlı panelimizi renkKutusu panelimize ekliyoruz JPanel turuncuKutucuk = new JPanel(); // Oluşturacağımız turuncu kutucuk için bir panel daha oluşturuyoruz turuncuKutucuk.setBackground(Color.orange); // setBackground kullanarak kutucuğumuzun arka planını turuncu yapıyoruz turuncuKutucuk.setLocation(0, 0); // setLocation ile kutumuzun konumunu belirliyoruz turuncuKutucuk.setSize(60, 60); // setSize ile kutumuzun boyutunu belirtiyoruz renkKutusu.add(turuncuKutucuk); // add kullanarak turuncuKutucuk adlı panelimizi renkKutusu panelimize ekliyoruz pencere.setSize(600,400); // JFrame ile oluşturduğumuz penceremizin boyutlarını belirtiyoruz pencere.setContentPane(anapanel); // setContentPane ile anapanaelimizi penceremize atıyoruz pencere.setResizable(false); // setResizable ile ana penceremizin sağdan soldan büyültme küçültme işlemlerini kısıtlıyoruz pencere.setVisible(true); // setVisible true diyerek tüm pencere ve panellerimizin görünür olmasını sağlıyoruz } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ

