JComponent in alt sınıfları



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

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

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

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

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

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

Progress Barlı, FTP Dosya Upload Appleti

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

The Experience of Technical Education Faculty Students in Industry

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

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

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

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

Burak Kıymaz JAVA FX

Java: Sayıları Biçemli Yazma

Applet Form Örnekleri2

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

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.

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

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

MOBİL UYGULAMA GELİŞTİRME

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

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

Javada Veri Tabanı İşlemleri

CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya /

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya /

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.

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

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;

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

YAZILIM İSTERLERİ ÇÖZÜMLENMESİ

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

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BİL-141 Bilgisayar Programlama I (Java)

Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar.

GENEL SORULAR VE CEVAPLARI 1.SORU:

MOBİL UYGULAMA GELİŞTİRME

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

Java Programlamada Paket Yapısı Ve Import

İ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İ

Spring Framework Eğitimi

Yazılım Kodlama ve İ simlendirme Standartları v1.0

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Bilgisayar Mühendisliği Bölümü,Mehmet Akif Ersoy Üniversitesi,Burdur

Java Applet Üzerine Form Nesnelerini Eklemek

Helikopter Dolaşım Sistemi

Top level widget. 1 Kaynak kodları yazarken widgetlerin özgün (original) adlarını kullanmak zorundayız.

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

BMH-303 Nesneye Yönelik Programlama

Javada Veri Tabanı Kullanımı

Arraylist. Özet. Giriş

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Görsel Programlama (Visual Programming) 2.Hafta

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

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

// hataları işaret eden referans

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

Business Delegate Tasarım Şablonu KurumsalJava.com

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Erişim konusunda iki taraf vardır:

Java Class Yapısında Finalize Metotunun Kullanımı

Java Applet Üzerinde Form Nesneleri Ve Listener Özelliği

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

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

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

BİL132 Bilgisayar Programlama II

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

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

7. HAFTA. Erişim Belirleyiciler

SWING İle GRAFİKSEL UYGULAMALAR-I

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

MOBIL UYGULAMA GELIŞTIRME

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

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

Java da İstemci Tarafı Uygulamalar

BMM3101 PROGRAMLAMA DİLLERİ

YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

APPLET KAVRAMI ve GRAFİKSEL ÇİZİM UYGULAMLARI

JavaFX Temelleri (1)

İ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İ

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

BMH-303 Nesneye Yönelik Programlama

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

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

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

2 JAVA ÇALIŞTIRMA ORTAMI

VERİ YAPILARI DERS NOTLARI

Transkript:

JAVA SWING Javax.Swing paketi Java Foundation Classes (JFC) kütüphanesi içindedir. 134 sınıfı olan, 25 arayüz kılgılayan büyük bir pakettir. Java.AWT (Java Abstract Window Toolkit) paketinin üzerine kuruludur ve uygulamalarda onun işlevini üstlenmiştir. Java ile Grafiksel Arayüzler (GUI) hazırlamak için gerekli bütün araçlara sahiptir. Son zamanlarda, programcıların büyük oranda tercih ettikleri bir pakettir. Bir görsel arayüz hazırlarken, en alta bir çerçeve (JFrame) konulur. Bu çerçeve içine genellikle bir panel konulur. Panel üzerine düğme, text alanı, liste, menü gibi görsel araçlar yerleştirilir. JComponent in alt sınıfları Frame: Boyutları değişebilen, hareket edebilen, üzerinde bir ad şeridi ve kapatma düğmesi olan swing aracıdır. Window sınıfından türetilmiştir. Genellikle, panelleri içerir. Öntanımlı konuşlanması BorderLayout dur. Panel: Bir çerçeve (Frame) ya da başka bir panel içinde yer alan ve üzerine swing araçları konulan düzlemsel bölge. Görünür sınırı yoktur, ama istenirse zemin rengi ile panel bölgesi belirli kılınabilir. Container sınıfından türetilmiştir. Öntanımlı konuşlanma yöntemi FlowLayout dur. Frame ile panel arasındaki farklar: 1

Frame kendi başına vardır ve daima en altta yer alır. Duvardaki boş resim çerçevesi gibidir. Çerçeve içerisine kat kat nesneler konulabilir. Üst katman alttakileri görünmez kılabilir. Panel ise kendi başına var olamaz, başka bir kap içinde olmak zorundadır. O kap bir frame ya da başka bir panel olabilir. Panel in içi, frame gibi boş değildir. Çerçeve içine yerleştirilen ve üzerine resim konulan karton zeminlere benzetilebilir. Üst üste konulabilirler. Üste konulan panel, alttakileri görünmez kılar. Tabii, frame ve panel sınıflarının her ikisininde üst sınıfları Container ve Component olduğu için, kalıtsal benzerlikleri vardır. Bu bölümde, java.swing paketinin yaptığı işleri göstermek amacıyla örnek programlar yazacağız. JFrame Örnekleri Aşağıdaki program boş bir JFrame yaratır. import java.awt.*; import javax.swing.*; public class JFrameDemo { public static void main(string[] args) { JFrame f = new JFrame("JFrame Çerçevesi"); f.setsize(250, 250); f.setlocation(300, 200); f.getcontentpane().add(borderlayout.center, new JTextArea(10, 40)); f.setvisible(true); Çıktı: 2

import java.awt.*; import javax.swing.*; public class JFrameDemo { public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createandshowframe(); ); public static void createandshowframe() { JFrame jf = new JFrame("Çerçeve"); jf.setsize(250, 250); jf.setlocation(300, 200); jf.getcontentpane().add( BorderLayout.CENTER, new JTextArea(10, 40)); jf.setvisible(true); package swing; import javax.swing.*; public class FrameDemo { public static void main(string[] args) { BoçÇerçeve frame = new BoçÇerçeve(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.show(); 3

class BoçÇerçeve extends JFrame { public BoçÇerçeve() { setsize(default_width, DEFAULT_HEIGHT); public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; Çıktı: Frame i Ekranın Ortasına Konuşlandırma import java.awt.*; public class CenteredFrameTester { public static void main(string[] args) { Frame myframe = new Frame("My Frame"); myframe.setsize(250, 250); Toolkit kit = myframe.gettoolkit(); Dimension screensize = kit.getscreensize(); int screenwidth = screensize.width; int screenheight = screensize.height; Dimension windowsize = myframe.getsize(); int windowwidth = windowsize.width; int windowheight = windowsize.height; int upperleftx = (screenwidth - windowwidth)/2; int upperlefty = (screenheight - windowheight)/2; myframe.setlocation(upperleftx, upperlefty); myframe.add(borderlayout.center, new TextArea(10, 40)); myframe.show(); Button Örneği: Aşağıdaki program JFrame üzerine önce bir Container yerleştiriyor. Sonra onun üzerine üç düğme koyuyor. Düğmeler FlowLayout yöneticisi tarafından konuşlandırılıyor. 4

package frame; import java.awt.*; import javax.swing.*; public class JFrameDemo { public static void main(string[] args) { //WindowUtilities.setNativeLookAndFeel(); JFrame f = new JFrame("Deneme"); f.setsize(400, 150); Container content = f.getcontentpane(); content.setbackground(color.blue); content.setlayout(new FlowLayout()); content.add(new JButton("Button 1")); content.add(new JButton("Button 2")); content.add(new JButton("Button 3")); //f.addwindowlistener(new ExitListener()); f.setvisible(true); Çıktı: 5

JFrame Örneği Show() metodu deprecate oldu. Onun yerine setvisible(true) metodu kullanılmalıdır. package swing; /* *Yaratılan Frame sistem kaynaklarını kullanıyorsa * kapat düğmesine basmak yetmeyecektir. * Fram'i tamamen kapatmak için WindowListener çağrılıyor */ // file: FrameDemo2.java import java.awt.event.*; import javax.swing.*; class FrameDemo extends JFrame { // Constructor: public FrameDemo() { settitle("ikinci Boş Frame"); setsize(300, 200); // default size is 0,0 setlocation(10, 200); // default is 0,0 (top left corner) // Window Listeners addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); //windowclosing ); public static void main(string[] args) { JFrame f = new FrameDemo(); f.show(); Çıktı: 6

JFrame: import javax.swing.jframe; import javax.swing.jlabel; public class FrameDemo extends JFrame { public static void main(string args[]) { new FrameDemo(); FrameDemo() { JLabel jlb1 = new JLabel("JavaLabel Örneği"); add(jlb1); this.setsize(100, 100); // pack(); setvisible(true); Çıktı package swing; import java.awt.event.windowadapter; import java.awt.event.windowevent; import javax.swing.*; public class JTableTest extends JFrame { String data[][] = {{"Didem", "Damla", "Berna", {"Volkan", "Koray", "İlknur", {"Merve", "Fehime", "Sabri", {"Neslihan", "Ceyda", "Mine",; String fields[] = {"Kolon1", "Kolon2", "Kolon3"; public static void main(string[] argv) { JTableTest jtt = new JTableTest("JTable Örneği"); public JTableTest(String title) { 7

super(title); setsize(150, 150); addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent we) { dispose(); System.exit(0); ); init(); pack(); setvisible(true); private void init() { JTable jt = new JTable(data, fields); JScrollPane pane = new JScrollPane(jt); getcontentpane().add(pane); //package gui; import javax.swing.jframe; class SwingDemo extends JFrame { private javax.swing.jlabel jlabel = null; private javax.swing.jtextfield jtextfield = null; private javax.swing.jbutton jbutton = null; public SwingDemo() { super(); this.setsize(300, 200); this.getcontentpane().setlayout(null); this.add(getjlabel(), null); this.add(getjtextfield(), null); this.add(getjbutton(), null); this.settitle("merhaba Swing"); 8

private javax.swing.jlabel getjlabel() { if (jlabel == null) { jlabel = new javax.swing.jlabel(); jlabel.setbounds(34, 49, 53, 18); jlabel.settext("adınız:"); return jlabel; private javax.swing.jtextfield getjtextfield() { if (jtextfield == null) { jtextfield = new javax.swing.jtextfield(); jtextfield.setbounds(96, 49, 160, 20); return jtextfield; private javax.swing.jbutton getjbutton() { if (jbutton == null) { jbutton = new javax.swing.jbutton(); jbutton.setbounds(103, 110, 71, 27); jbutton.settext("ok"); return jbutton; public static void main(string[] args) { SwingDemo sd = new SwingDemo(); sd.setvisible(true); Çıktı: import java.awt.*; import java.awt.event.*; public class AL extends Frame implements WindowListener,ActionListener { TextField text = new TextField(20); Button b; private int numclicks = 0; 9

public static void main(string[] args) { AL mywindow = new AL("Window Örneği"); mywindow.setsize(350,100); mywindow.setvisible(true); public AL(String title) { super(title); setlayout(new FlowLayout()); addwindowlistener(this); b = new Button("Tıkla"); add(b); add(text); b.addactionlistener(this); public void actionperformed(actionevent e) { numclicks++; text.settext("düğme " + numclicks + " kez tıklandı"); public void windowclosing(windowevent e) { dispose(); System.exit(0); public void windowopened(windowevent e) { public void windowactivated(windowevent e) { public void windowiconified(windowevent e) { public void windowdeiconified(windowevent e) { public void windowdeactivated(windowevent e) { public void windowclosed(windowevent e) { 10

// TextPanel.java /************************************************************* * @file: TextPanel.java * @source: adapted from Horstmann and Cornell, Core Java * @history: Visualization Course, Spring 2003, Chee Yap *************************************************************/ import java.awt.*; import java.awt.event.*; import javax.swing.*; /************************************************************* * TextPanel Class (with main method) *************************************************************/ class TextPanel extends JPanel { // override the paintcomponent method // THE MAIN DEMO OF THIS EXAMPLE: public void paintcomponent(graphics g) { super.paintcomponent(g); Font f = new Font("SansSerif", Font.BOLD, 14); Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14); FontMetrics fm = g.getfontmetrics(f); FontMetrics fim = g.getfontmetrics(fi); int cx = 75; int cy = 100; g.setfont(f); g.drawstring("hello, ", cx, cy); cx += fm.stringwidth("hello, "); g.setfont(fi); g.drawstring("world!", cx, cy); //paintcomponent //============================================= ///////////// main //////////////////////////// public static void main(string[] args) { JFrame f = new MyFrame("My Hello World Frame"); f.show(); //main //class TextPanel /************************************************************* MyFrame Class *************************************************************/ class MyFrame extends JFrame { public MyFrame(String s) { // Frame Parameters settitle(s); setsize(300,200); // default size is 0,0 setlocation(10,200); // default is 0,0 (top left corner) // Window Listeners addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); //windowclosing ); //addwindowlister 11

// Add Panels Container contentpane = getcontentpane(); contentpane.add(new TextPanel()); //constructor MyFrame 12

import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.text.dateformat; import java.util.calendar; import java.util.date; import java.util.locale; import javax.swing.defaultlistmodel; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlist; import javax.swing.jpanel; public class MyEvent extends JFrame { private JList list; private DefaultListModel model; public MyEvent() { settitle("event Object"); JPanel panel = new JPanel(); panel.setlayout(null); model = new DefaultListModel(); list = new JList(model); list.setbounds(150, 30, 220, 150); JButton ok = new JButton("Ok"); ok.setbounds(30, 35, 80, 25); ok.addactionlistener(new ActionListener() { public void actionperformed(actionevent event) { Locale locale = Locale.getDefault(); Date date = new Date(); String s = DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(date); if (!model.isempty() ) model.clear(); if (event.getid() == ActionEvent.ACTION_PERFORMED) model.addelement(" Event Id: ACTION_PERFORMED"); model.addelement(" Time: " + s); 13

String source = event.getsource().getclass().getname(); model.addelement(" Source: " + source); int mod = event.getmodifiers(); StringBuffer buffer = new StringBuffer(" Modifiers: "); if ((mod & ActionEvent.ALT_MASK) > 0) buffer.append("alt "); if ((mod & ActionEvent.SHIFT_MASK) > 0) buffer.append("shift "); if ((mod & ActionEvent.META_MASK) > 0) buffer.append("meta "); if ((mod & ActionEvent.CTRL_MASK) > 0) buffer.append("ctrl "); ); model.addelement(buffer); panel.add(ok); panel.add(list); add(panel); setsize(420, 250); setlocationrelativeto(null); setdefaultcloseoperation(exit_on_close); setvisible(true); public static void main(string[] args) { new MyEvent(); 14

import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class CommonLayouts extends JFrame { public CommonLayouts() { super("common Layout Managers"); setsize(500, 380); JDesktopPane desktop = new JDesktopPane(); getcontentpane().add(desktop); JInternalFrame fr1 = new JInternalFrame("FlowLayout", true, true); fr1.setbounds(10, 10, 150, 150); Container c = fr1.getcontentpane(); c.setlayout(new FlowLayout()); c.add(new JButton("1")); c.add(new JButton("2")); c.add(new JButton("3")); c.add(new JButton("4")); desktop.add(fr1, 0); JInternalFrame fr2 = new JInternalFrame("GridLayout", true, true); fr2.setbounds(170, 10, 150, 150); c = fr2.getcontentpane(); c.setlayout(new GridLayout(2, 2)); c.add(new JButton("1")); c.add(new JButton("2")); c.add(new JButton("3")); c.add(new JButton("4")); desktop.add(fr2, 0); JInternalFrame fr3 = new JInternalFrame("BorderLayout", true, true); fr3.setbounds(330, 10, 150, 150); c = fr3.getcontentpane(); c.add(new JButton("1"), BorderLayout.NORTH); c.add(new JButton("2"), BorderLayout.EAST); c.add(new JButton("3"), BorderLayout.SOUTH); c.add(new JButton("4"), BorderLayout.WEST); desktop.add(fr3, 0); JInternalFrame fr4 = new JInternalFrame("BoxLayout - X", 15

true, true); fr4.setbounds(10, 170, 250, 120); c = fr4.getcontentpane(); c.setlayout(new BoxLayout(c, BoxLayout.X_AXIS)); c.add(new JButton("1")); c.add(box.createhorizontalstrut(12)); c.add(new JButton("2")); c.add(box.createglue()); c.add(new JButton("3")); c.add(box.createhorizontalglue()); c.add(new JButton("4")); desktop.add(fr4, 0); JInternalFrame fr5 = new JInternalFrame("BoxLayout - Y", true, true); fr5.setbounds(330, 170, 150, 180); c = fr5.getcontentpane(); c.setlayout(new BoxLayout(c, BoxLayout.Y_AXIS)); c.add(new JButton("1")); c.add(box.createverticalstrut(10)); c.add(new JButton("2")); c.add(box.createglue()); c.add(new JButton("3")); c.add(box.createverticalglue()); c.add(new JButton("4")); desktop.add(fr5, 0); try { fr1.setselected(true); catch (java.beans.propertyvetoexception ex) { WindowListener wndcloser = new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ; addwindowlistener(wndcloser); setvisible(true); public static void main(string argv[]) { new CommonLayouts(); 16

import java.awt.*; import javax.swing.*; import javax.swing.border.*; class BorderTest extends JFrame { public BorderTest() { settitle("border Test"); setsize(450, 450); JPanel content = (JPanel) getcontentpane(); content.setlayout(new GridLayout(6,2)); JPanel p.setborder(new BevelBorder (BevelBorder.RAISED)); p.add(new JLabel("RAISED BevelBorder")); p.setborder(new BevelBorder (BevelBorder.LOWERED)); p.add(new JLabel("LOWERED BevelBorder")); p.setborder(new LineBorder (Color.black, 5)); p.add(new JLabel("Black LineBorder, thickness = 5")); p.setborder(new EmptyBorder (10,10,10,10)); p.add(new JLabel("EmptyBorder with thickness of 10")); p.setborder(new EtchedBorder (EtchedBorder.RAISED)); p.add(new JLabel("RAISED EtchedBorder")); p.setborder(new EtchedBorder (EtchedBorder.LOWERED)); p.add(new JLabel("LOWERED EtchedBorder")); p.setborder(new SoftBevelBorder (SoftBevelBorder.RAISED)); p.add(new JLabel("RAISED SoftBevelBorder")); 17

p.setborder(new SoftBevelBorder (SoftBevelBorder.LOWERED)); p.add(new JLabel("LOWERED SoftBevelBorder")); p.setborder(new MatteBorder (new ImageIcon("spiral.gif"))); p.add(new JLabel("MatteBorder")); p.setborder(new TitledBorder ( new MatteBorder (new ImageIcon("spiral.gif")), "Title String")); p.add(new JLabel("TitledBorder using MatteBorder")); p.setborder(new TitledBorder ( new LineBorder (Color.black, 5), "Title String")); p.add(new JLabel("TitledBorder using LineBorder")); p.setborder(new TitledBorder ( new EmptyBorder (10,10,10,10), "Title String")); p.add(new JLabel("TitledBorder using EmptyBorder")); setvisible(true); public static void main(string args[]) { new BorderTest(); 18