Gelişmiş GUI Araçları

Gelişmiş Java GUI

23.1 JList Bileşeni

Jlist nesnelerin listesini gösteren bir bileşendir. Kullanıcının bir veya birden fazla seçim yapabilmesini sağlar.

 23.2 JTextArea Bileşeni

JTextArea yazıların gösterildiği çok satırlı, hafifsiklet bir bileşendir.

Bileşen sayfanın aşaği yukarı kaydırılmasını desteklemez.

Bunun için JScrollPane kullanırız.


Bu örnek basit bir JTextArea bileşenini temsil eder.

JTextArea bileşeninin constructor metodu aşagıdaki gibidir.

Eğer yazılar sığmayacaksa, aşağıdan devam etmesini sağlar.

Burada satırın ne şekilde alt taraftan devam edeceği özelleştirilir.

Bizim durumumuzda satırlar kelimelerin bittiği boşluklardan devam edecektir.

Yazının kaydırılabilmesi için JTextArea bileşenini JScrollPane bileşeninin içine koyarız.


adsgui
 

23.3 JEditorPane Bileşeni
JEditorPane farklı yazı formatları gösterebilen bir textArea’dır. Öntanımlı olarak HTML ve RTF destekler

Pratikte, JEditorPane HTML göstermek için kullanılır.

JEditorPane artı olarak RTF de desteklemektedir ancak sınırlıdır. JEditorPane içeriğini aşağıdaki şekilde belirleyebilirsiniz.

•URL nesnesini veya string’ini JEditorPane consturctor metoduna göndererek

•setPage() metodunu kullanarak JEditorPane içeriğini çalışma zamanında
ayarlayarak

•içeriği setText() metoduyla string olarak göndererek

JEditorPane’I yalnız okunabilir kılmak için setEditable(false) metodu kullanılır. HTML dökümanları gösterilirken kullanıcının tıkladığı HTML linkleri JEditorPane tarafından farkedilebilir. Fare tıklamalarını kontrol edebilmek için HyperlinkListener event’I kullanılmalıdır.

Bu örnekte JEditor Pane kullanarak herhangi bir sayfayı açmak için basit bir web tarayıcısı yapacağız.Artı olarak JButton ve JTextField bileşenleri de kullanılacak.

big-expjava-brow

23.4 Swing Diyalog Pencereleri

Diyalog pencereleri veya diyaloglar modern GUI uygulamalarının olmazsa olmazlarıdır. Diyalog iki veya daha fazla kişi arasında geçen konuşma olarak tanımlanmaktadır. Bilgisayar uygulamasında ise; uygulamayla konuşmak için kullanılır. Diyalog; veri girişi, verinin değiştirilmesi, uygulama ayarlarının değiştirilmesi vb.’nde kullanılır.Diyaloglar program ve kullanıcı arasındaki iletişimin kilit noktasıdır.

Java Swing de iki tür diyalog üretilebilir.

•özel diyalog

•standart diyalog

Özel diyaloglar programcı tarafından üretilir. JDialog sınıfını baz alır.

Standart diyaloglar Swing’de bulunan önceden tanımlı olanlardir. Örnek olarak MessageDialog, InputDialog, JColorChooser JFileChooser verilebilir. Bu diyaloglar
metni gösterme, input alma, dosyaları yükleme ve kaydetme gibi genel programlama görevleri için kullanılır. Bunlar programcıya zaman kazandırır ve bazı standart davranışların kullanımını arttırır.

İki tür basit diyalog tipi vardır. Kipli ve kipsiz

  • Kipli diyaloglar açık olan pencerenin arkasındaki pencerelere müdehaleyeizin vermez. Dosya açma penceresi buna iyi bir örnektir. Bir dosya açarken başka bir işleme izin verilmez.
  • Kipsiz diyaloglar diğer pencerelere erişime izin verir. Arama diyaloğu buna birörnektir.

23.5 JFileChooser

JFileChooser sistemden dosya seçmek için kullanılan standart bir diyalogdur.

big-exp-2

Bu örnek yazı alanı bileşenine dosya içeriklerini koyabilmek için dosya seçme diyaloğunun nasıl kullanılacağını açıklamaktadır.

Aşağıdaki syntax, File nesnesi verilen bir FileWriter nesnesi oluşturur.

JFileChooser fileopen = new JFileChooser();

Dosya seçme diyaloğunun constructor metodu.

FileFilter filter = new FileNameExtensionFilter("txt files", "txt");
fileopen.addChoosableFileFilter(filter);

Burada bir filtre oluşturuyoruz. Şu durumda txt uzantılı text dosyalarına erişeceğiz. Öntanımlı olarak “Bütün dosyalar” seçeneği vardır.


int answer = fileopen.showDialog(null, "Open file");

Burada dosya seçme diyaloğunu gösteriyoruz. Dosyayı aç butonuna basınca geri dönen değer JFileChooser.APPROVE_OPTION. değeridir.


if (ret == JFileChooser.APPROVE_OPTION) {

File file = fileopen.getSelectedFile();

try {

editorPane.setPage(“File:///”+ file);

} catch (Exception e1) {

e1.printStackTrace();

}

}

Burada seçilen dosyanın ismini alıyoruz. Dosyanın içeriklerini okuyoruz ve ismini
editorPane’e atıyoruz.

Resim

23.6 JColorChooser

JcolorChooserrenk seçmek için kullanılan bir diyalogdur.

Bu örnekte bir panelimiz var. Renk seçme diyaloğunu kullanarak panelden bir renk seçip arka plan rengini değiştireceğiz

Bu kod renk seçme diyaloğunu gösteriyor. showDialog() metodu seçilen rengi geri döndürür. Seçilen yeni renge göre arka planı değiştiriyoruz.

java-color

23.7 Java Swing Menüleri

Menubar GUI uygulamasında en çok görülen bileşendir. Bunlara farklı menülere yerleştirilmiş komutlar grubu da denebilir.

Java Swing’te, menubar uygulamak için, 3 adet nesne kullanırızı. JMenuBar, JMenu
ve JMenuItem.

Örneğimizde bir elemanı olan bir menü göstereceğiz Çıkış seçeneğini seçerek
uygulamayı kapatacağız.

JMenuBar menubar = new JMenuBar();

Burada menüyü oluşturduk

ImageIcon icon = new ImageIcon(getClass().getResource(“exit.png”));

Menüde bir ikon gösterdik.

23.8 JTable

JTable çok boyutlu dizilerde tutulan verileri göstermek için kullanılır. Oyuncuları,müşterileri,farklı sensörlerden gelen verileri göstermek için uygundur. Öntanıml modelinde veriler değiştirilebilir hücerlerin olduğu bir tabloya koyulur. Excel’de olduğu gibi bu hücreler eşit boyutludur.
Tabloyu doldurmak için veri dizilerine ihtiyac duyulur.Tablonun başlığı basit bir string dizisidir. Veriler ise 2 boyutlu bir nesne dizisidir.

JTable’dan kolay bir şekilde instance alınabilir. 2 boyutlu diziyi ve başlığı tabloya göndeririz.

Kaydırma çubuğunu iki sebepten ötürü kullanırız.ilki aşağı yukarı erişim, ikincisi iste kaydırma çubuğu olmadan başlıkların gözükmemesidir.