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

Benzer belgeler
Bölüm 22. Java GUI Kütüphanesi SWT GUI Kütüphanesi SWING GUI Kütüphanesi İlk Swing Programı

Java da. ve AWT ve SWING Kütüphaneleri. BBS-515 Nesneye Yönelik Programlama. Ders #8 (9 Aralık 2009)

JComponent in alt sınıfları

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Progress Barlı, FTP Dosya Upload Appleti

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

The Experience of Technical Education Faculty Students in Industry

Burak Kıymaz JAVA FX

USOCK Uygulama Bağımsız Mesajlaşma Altyapısı

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

ORNEK 1: Tarım Makinaları ve Teknolojileri Mühendisliği başlıklı çerçeve üretme.

HESAP MAKİNASI YAPIMI

Applet Form Örnekleri2

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

İÇİNDEKİLER VII İÇİNDEKİLER

YAZILIM İSTERLERİ ÇÖZÜMLENMESİ

BİL-141 Bilgisayar Programlama I (Java)

// hataları işaret eden referans

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

1 - Button Kontrolu Nasıl Yapılır?

Java String İşlemleri

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

BİL-142 Bilgisayar Programlama II

Dizi ( Array ) ve Dizgi ( String )

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Java: Sayıları Biçemli Yazma

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

JAVA PROGRAMLAMAYA GİRİŞ

Metin İşlemleri, Semboller

7. HAFTA. Erişim Belirleyiciler

Javada Veri Tabanı İşlemleri

GENEL SORULAR VE CEVAPLARI 1.SORU:

BİL-141 Bilgisayar Programlama I (Java)

ASP.NET ile Bir Web Sitesi Oluşturma


CSSigner, Cybersoft firması tarafından geliştirilmiş açık kaynak kodlu e-imza yazılım kütüphanesidir.

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

FireBug eklentisini eklentiyi yazan sitesinden veya FireFox un eklentiler indirebilirsiniz.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Proje 1. Arayüz Tasarımı

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Android Ders Notları

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Data Structures Lab Güz

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

MOBİL UYGULAMA GELİŞTİRME

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

MOBİL UYGULAMA GELİŞTİRME

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Boğaziçi Üniversitesi Bilgi İşlem Merkezi. Web Yönetimi Birimi. Drupal Kullanım Kılavuzu

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

MENÜLER. 1. Giriş (Login) Menüsü

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Kişisel Bilgisayarın Parçaları

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

Ders - 7 while döngüsü

Java da İstemci Tarafı Uygulamalar

Nevşehir Hacı Bektaş Veli Üniversitesi. Moodle Uzaktan Eğitim Sistemi. Öğretim Elemanı Bilgilendirme Kılavuzu

X3D ve Xj3D. Tahir Emre KALAYCI Güz Dönemi İleri Bilgisayar Grafikleri Dersi

JavaFX Temelleri (1)

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

2. Belgeye Metin Ekleme

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

BMH-303 Nesneye Yönelik Programlama

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

HTML içerik oluşturmak için düşünülen bir işaret dilidir. Örnek

MOBİL UYGULAMA GELİŞTİRME

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

PROGRAMLAMA DERSİ 1. İNTERNET

Decorator Tasarım Şablonu

Erişim konusunda iki taraf vardır:

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Internet ve Bilgi Teknolojileri (BİL 309) Dersi

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Transkript:

Bölüm 24 Gelişmiş Java GUI 24.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. import java.awt.color; import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.jlist; import javax.swing.listselectionmodel; import javax.swing.event.listselectionlistener; import javax.swing.event.listselectionevent; public class JListExample extends JFrame { private JPanel contentpane; String[] listcolornames = { "black", "blue", "green", "yellow","white" ; Color[] listcolorvalues = { Color.BLACK, Color.BLUE,Color.GREEN,Color.YELLOW, Color.WHITE; public JListExample() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); final JList list = new JList(listColorNames); list.addlistselectionlistener(new ListSelectionListener() { public void valuechanged(listselectionevent e) { contentpane.setbackground(listcolorvalues[list.getselectedindex()]); ); list.setselectionmode(listselectionmodel.single_selection); list.setselectedindex(0); list.setbounds(109, 54, 144, 163); contentpane.add(list);

public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JListExample frame = new JListExample(); frame.setvisible(true); ); 24.2 JTextArea Bileşeni JTextArea yazıların gösterildiği çok satırlı, hafifsiklet bir bileşendir. Bileşen sayfanın aşağı yukarı kaydırılmasını desteklemez. Bunun için JScrollPane kullanırız. import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.joptionpane; import javax.swing.jtextarea; import javax.swing.jbutton; import javax.swing.jscrollpane; import javax.swing.swingutilities; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class JTextAreaExample extends JFrame { private JPanel contentpane; public JTextAreaExample() { setdefaultcloseoperation(jframe.exit_on_close); settitle("independence hymn"); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane);

contentpane.setlayout(null); JScrollPane scrollpane = new JScrollPane(); scrollpane.setbounds(56, 11, 300, 177); contentpane.add(scrollpane); final JTextArea textarea = new JTextArea(); textarea.setwrapstyleword(true); textarea.setlinewrap(true); scrollpane.setviewportview(textarea); JButton btnnewbutton = new JButton("Show Me Text"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { JOptionPane.showMessageDialog(null, textarea.gettext()); ); btnnewbutton.setbounds(156, 216, 141, 23); contentpane.add(btnnewbutton); public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JTextAreaExample frame = new JTextAreaExample(); frame.setvisible(true); ); Bu örnek basit bir JTextArea bileşenini temsil eder. JTextArea textarea = new JTextArea(); JTextArea bileşeninin constructor metodu aşağıdaki gibidir. textarea.setlinewrap(true); Eğer yazılar sığmayacaksa, aşağıdan devam etmesini sağlar. textarea.setwrapstyleword(true); Burada satırın ne şekilde alt taraftan devam edeceği özelleştirilir. Bizim durumumuzda satırlar kelimelerin bittiği boşluklardan devam edecektir. JScrollPane scrollpane = new JScrollPane(); scrollpane.setbounds(56, 11, 300, 177); contentpane.add(scrollpane); final JTextArea textarea = new JTextArea(); textarea.setwrapstyleword(true); textarea.setlinewrap(true); scrollpane.setviewportview(textarea);

Yazının kaydırılabilmesi için JTextArea bileşenini JScrollPane bileşeninin içine koyarız. 24.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.

import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.jbutton; import javax.swing.jeditorpane; import javax.swing.jscrollpane; import javax.swing.swingutilities; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class JEditorPaneExample extends JFrame { private JPanel contentpane; private JTextField textfield; public JEditorPaneExample() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 850, 517); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); JLabel lblurl = new JLabel("URL"); lblurl.setbounds(10, 11, 36, 14); contentpane.add(lblurl); textfield = new JTextField(); textfield.setbounds(56, 8, 688, 20); contentpane.add(textfield); textfield.setcolumns(10); JScrollPane scrollpane = new JScrollPane(); scrollpane.setbounds(10, 39, 800, 416); contentpane.add(scrollpane); final JEditorPane editorpane = new JEditorPane(); scrollpane.setviewportview(editorpane); JButton btnnewbutton = new JButton("GO"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { try { editorpane.setpage(textfield.gettext()); catch (Exception ex) { ex.printstacktrace(); ); btnnewbutton.setbounds(754, 7, 56, 23); contentpane.add(btnnewbutton); public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JEditorPaneExample frame = new JEditorPaneExample(); frame.setvisible(true); );

24.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üdehaleye izin 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. 24.5 JFileChooser JFileChooser sistemden dosya seçmek için kullanılan standart bir diyalogdur. import java.awt.eventqueue; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.filechooser.filefilter; import javax.swing.filechooser.filenameextensionfilter; import javax.swing.jbutton; import java.awt.event.actionlistener; import java.awt.event.actionevent; import java.io.file; import javax.swing.jeditorpane; public class JFileChooserExample extends JFrame { private JPanel contentpane; public JFileChooserExample() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null);

final JEditorPane editorpane = new JEditorPane(); editorpane.setbounds(20, 50, 387, 187); contentpane.add(editorpane); JButton btnnewbutton = new JButton("Open File"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { JFileChooser fileopen = new JFileChooser(); FileFilter filter = new FileNameExtensionFilter("txt files", "txt"); fileopen.addchoosablefilefilter(filter); int answer = fileopen.showdialog(null, "Open file"); if (answer == JFileChooser.APPROVE_OPTION) { File file = fileopen.getselectedfile(); try { editorpane.setpage("file:///"+ file); catch (Exception e1) { e1.printstacktrace(); ); btnnewbutton.setbounds(10, 11, 89, 23); contentpane.add(btnnewbutton); public static void main(string[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { JFileChooserExample frame = new JFileChooserExample(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); ); 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. 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.

24.6 JColorChooser JcolorChooser renk seçmek için kullanılan bir diyalogdur. import javax.swing.jcolorchooser; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.swingutilities; import javax.swing.border.emptyborder; import javax.swing.jbutton; import javax.swing.border.lineborder; import java.awt.color; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class JColorChooserExample extends JFrame { private JPanel contentpane; public JColorChooserExample() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); final JPanel panel = new JPanel(); panel.setborder(new LineBorder(new Color(0, 0, 0))); panel.setbounds(67, 74, 220, 145); contentpane.add(panel); JButton btnnewbutton = new JButton("Choose Color"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { Color color = JColorChooser.showDialog(null, "Choose Color", Color.white); panel.setbackground(color); ); btnnewbutton.setbounds(10, 11, 111, 23); contentpane.add(btnnewbutton); public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JColorChooserExample frame = new JColorChooserExample(); frame.setvisible(true); );

Bu örnekte bir panelimiz var. Renk seçme diyaloğunu kullanarak panelden bir renk seçip arka plan rengini değiştireceğiz. Color color = JColorChooser.showDialog(null, "Choose Color", Color.white); panel.setbackground(color); Bu kod renk seçme diyaloğunu gösteriyor. showdialog() döndürür. Seçilen yeni renge göre arka planı değiştiriyoruz. metodu seçilen rengi geri 24.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. import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.imageicon; import javax.swing.jframe; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuitem; import javax.swing.swingutilities; public class Example extends JFrame { public Example() { JMenuBar menubar = new JMenuBar(); ImageIcon icon = new ImageIcon(getClass().getResource("exit.png")); JMenu filemenu = new JMenu("File"); JMenuItem emenuitem = new JMenuItem("Exit", icon); emenuitem.addactionlistener(new ActionListener() { public void actionperformed(actionevent event) { System.exit(0); ); filemenu.add(emenuitem); menubar.add(filemenu); setjmenubar(menubar); settitle("simple menu"); setsize(300, 200); setlocationrelativeto(null); setdefaultcloseoperation(exit_on_close); public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Example ex = new Example(); ex.setvisible(true); ); Ö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.

24.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. import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.swingutilities; import javax.swing.border.emptyborder; import javax.swing.jtable; import javax.swing.jscrollpane; public class JTableExample extends JFrame { private JPanel contentpane; private JTable table; // The data used as the titles for the table. String[] title = {"No.", "Country", "Player", "Position"; // The data used in the table, placed as a multi-dimensional array. Object[][] playerdata = { {4, "United States", "Sterling Davis", "Forward", {6, "Germany", "Moritz Wohlers", "Forward/Centre", {7, "United Kingdom", "Ross Hutton", "Centre", {8, "Belgium", "Hugo Sterk", "Guard", {10, "United Kingdom", "Andy Pearson", "Forward", {11, "United States", "Robert Yanders", "Guard", {12, "United Kingdom", "Graham Hunter", "Guard", {14, "United Kingdom", "Julius Joseph", "Guard/Forward", {15, "United Kingdom", "Gareth Murray", "Forward", {21, "United States", "Maurice Hampton", "Guard";

public JTableExample() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); JScrollPane scrollpane = new JScrollPane(); scrollpane.setbounds(35, 45, 344, 119); contentpane.add(scrollpane); table = new JTable(playerdata, title); scrollpane.setviewportview(table); public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { try { JTableExample frame = new JTableExample(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); ); JTable dan kolay bir şekilde instance alınabilir. 2 boyutlu diziyi ve başlığı tabloya göndeririz. JTable table = new JTable(playerdata, title); 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.