Minggu, 04 Desember 2011

Layout Manager

Tampilan yang ada lebih berbasis gambar dan tidak perlu mengetik lagi
kalau contoh yang bukan GUI ya DOS itu atau ADB. Yang mana anda perlu ngetik macam macam hanya untuk menjalankan perintah seperti hardreset, memasukkan framework, ganti boot animation. Tapi kalau sudah GUI hanya tinggal diklik saja untuk menjalankan perintah yg anda ingin jalankan.
Layout Manager

•Seperti pada gambar, layout manager bertugas menyusun komponen-komponen(button, label, checkbox, dll) di dalam suatu container (panel, frame, dll).

•Layout manager menentukan posisi danukuran setiap komponen di dalam container. Proses ini akan berbeda untuk setiap class layout yang digunakan

•AWT dan Swing memiliki beberapa layout manager standar yang penggunaannya seringkali dikombinasikansesuai situasi dan kebutuhan kita.
 Standard Layout Manager
• FlowLayout
FlowLayout merupakan layout manager yang simpel.
o FlowLayout menyusun komponen berdasarkan ukuran defaultmasing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan.
o FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta “padding” horizontal/vertical.
o Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen akan disimpan di posisi tengah-tengah.
o FlowLayout merupakan default untuk JPanel.
Contoh:
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
o Pada dasarnya, untuk aplikasi sesungguhnya, kita tidak disarankan menggunakan FlowLayout karena sifatnya yang tidak bisa memposisikan komponen dengan pasti.
• GridLayout
GridLayout menempatkan komponen dalam bentuk “rectangular grid”. Ada 3 constructor untuk GridLayout:
o GridLayout(): membuat layout dengan satu kolom per komponen. Hanya satu baris yang digunakan.
o GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan kolom yang diinginkan.
o GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun vertical untuk setiap baris dan kolom tersebut.
o GridLayout menempatkan komponen dengan urutan dari kiri ke kanan dan dari atas ke bawah.
o GridLayout akan memaksa setiap komponen untuk menempati space container yang kosong serta membagi rata ukuran space tersebut.
o GridLayout paling cocok digunakan untuk menyusun komponen yang berukuran sama, misalnya 2 buah JPanel berukuran sama di dalam sebuah frame.
o Contoh:
frame.add(panel1);
frame.add(panel2);
frame.setLayout(newGridLayout(2, 1));

o Kita dapat men-set jumlah baris dan kolom dengan angka 0. Artinya, kita tidak mempedulikan berapa banyak komponen yang akan masuk ke dalam dimensi layout manager tersebut.
o Contoh: GridLayout(2,0)
o Artinya: kita membuat layout manager dengan 2 baris dan unlimited number untuk kolomnya.

•BorderLayout
o BorderLayout menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER.
o Secara optional, kita dapat juga memberikan paddingdi antara komponen.
o BorderLayout merupakan layout default untuk JWindowdan JFrame.
o Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini hanya dapat menangani maksimal 5 komponen.
o Pada saat menambahkan suatu komponen kepada container yang memiliki border layout, kita harus menentukan secara bersamaan komponen-nya dan posisi-nya.
o Contoh:
frame.setLayout(new BorderLayout( ));
frame.add(new JButton("Button1"), BorderLayout.NORTH );
frame.add(new JButton("Button2"), BorderLayout.SOUTH );

BoxLayout
o Layout manager yang telah kita bahas sebelumnya merupakan bagian dari package java.awt.
o Javax.swingmemiliki beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout.
o Layout manager ini sangat berguna untuk membuat toolbarssederhana atau vertical button bars.
o Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu kolom.
o Untuk mempermudah penggunaan BoxLayout, Swing menyediakan sebuah kelas yang bernama Boxyaitu sebuah container yang secara otomatismemiliki BoxLayout manager.
o Box memiliki beberapa methodsyang akan mempermudah kita dalam menggunakan BoxLayout manager, yaitu:
createHorizontalBox() untuk membuat box horizontal
createHorizontalGlue() untuk merekatkan komponen
createHorizontalStrut(int n) untuk memberi jarak antar komponen
createVerticalBox() untuk membuat box vertical
createVerticalGlue() untuk merekatkan komponen
createVerticalStrut(int n) untuk memberi jarak antar komponen

• CardLayout

o CardLayout merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen.
o Artinya, layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer, melainkan menampilkannya satu demi satu.
o Penggunaan CardLayout biasanya untuk membuat panel yang bersifat custom-tabbed.
o Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen JTabbedPane.
o Untuk mempraktekkan cara kerja dan efek “tumpukan”dari CardLayout ini, kita perlu mempelajari terlebih dahulu mengenai “event-driven programming” seperti yang ada di.

• GridBagLayout

o GridBagLayout merupakan layaout manager yang sangat fleksibel.
o Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen lainnya berdasarkan constraint tertentu.
o Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa batas.
o Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut “logical coordinate”.
o Logical coordinate berarti bahwa koordinat suatu komponen ditentukan oleh sekumpulan komponen lainnya.
o Baris dan kolom dari grid tersebut bersifat “stretch” yang bergantung pada sizedan constraintyang dimilikiny
o Walaupun fleksibel, pembuatan GridBag ini terkadang sangat membingungkan karena kita harus mengatur berbagai sizedan constraint dari setiap komponen yang digunakan.
o Sebenarnya, penggunaan GridBagLayout ini jauh lebih mudah apabila kita menggunakan tools yang mendukung WYSIWYG GUI builder. (contohnya: NetBeans IDE)

• GroupLayout
o Lihat contoh program:
• Group.java
• AlumniForm.java
o GroupLayout dapat kita buat dengan cara mengetik manual seperti membuat layout lainnya.
o Namun, keunggulan GroupLayout adalah dapat dibuat dengan mudah apabila menggunakan IDE seperti NetBeans.

 Mengubah Default Layout Manager
• Setiap container memiliki default layout manager.
• Pada saat kita membuat sebuah container (misal: panel, frame, tabbed pane, split pane, dll), maka container tsb memiliki objek LayoutManager masing-masing.
• Kita dapat mengubah layout manager default tersebut dengan suatu layout yang baru dengan menggunakan method “setLayout()”
• Contoh:
Default layout manager untuk JFrame adalah: FlowLayout
Kita dapat mengubah layout tersebut dengan cara misalnya:

myFrame.setLayout(new BorderLayout());

Perbedaan Antara Program GUI dan CUI

Dari sisi cara penampilannya, sebuah program dapat di bedakan menjadi dua, yaitu Graphical User Interface (GUI) dan Command User Interface (CUI).Program GUI merupakan program yang berjalan di atas Graphical User Interface atau dengan kata lain merupakan program yang di buat dengan bahasa pemrograman.Untuk membuat program GUI, anda dapat menggunakan bahasa pemrograman visual seperti Visual Studio.Net dan Delphi di Windows atau KDevelop plus QT Designer di Linux.Bahasa pemrograman Web seperti HTML juga termasuk kelas pemrograman GUI karena pada umumnya di buka menggunakan browser berbasis GUI, walaupun bisa di buat memakai browser teks semacam Lynx.Sementara itu, program CUI adalah program yang berjalan dengan mode tampilan konsol. CUI program yang akan anda buat kebanyakan disusun oleh tampilan teks (walaupun anda dapat membuat efek sehingga terlihat tampilan seperti visual).Untuk membuat program CUI, anda dapat menggunakan bahasa pemrograman berbasis konsol seperti Pascal, C , Perl, Phyton, dan lainnya.

Graphical User Interface (GUI) merupakan salah satu model interaksi antara manusia dan komputer. Selain GUI, sedangkan Character User Interface (CUI) yang sering kita kenal dengancommand line. Dari sisi kenyamanan (attitude), kedua model ini memiliki ‘penganut’nya masing-masing. Penganut CUI biasanya adalah administrator sistem berbasis sistem operasi LINUX. Bagi mereka, CUI dirasakan lebih nyaman dibandingkan dengan GUI, bahkan setelah GUI pada LINUX berkembang dengan pesat, mereka tetap bertahan untuk menggunakan CUI. Penganut GUI biasanya adalah mereka yang sudah terbiasa dengan sistem operasi Windows. Bagi mereka, GUI adalah harga mati yang tidak bisa ditawar lagi.


Kelebihan GUI

Tampilan yang ada lebih berbasis gambar dan tidak perlu mengetik lagi
kalau contoh yang bukan GUI ya DOS itu atau ADB. Yang mana anda perlu ngetik macam macam hanya untuk menjalankan perintah seperti hardreset, memasukkan framework, ganti boot animation. Tapi kalau sudah GUI hanya tinggal diklik saja untuk menjalankan perintah yg anda ingin jalankan.

AWT dan Swing

> 1. uraikan pengertian AWT (Abstract Windowing Toolkit) dan Swing!
Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatform serta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down.
Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.*;

> 2. sebutkan keuntungan dan kerugian dari penggunaan AWT dan Swing!
package Swing yang mempunyai tampilan look and feel yang sama meski dijalankan pada paltform yang berbeda. Lebih dari itu, Swing menyediakan komponen yang lebih menarik seperti color chooser dan option pane. Tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API
yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama komponen Swing.

> 3. gambarkan hirarki class pada Swing!