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.
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.
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
• 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.
FlowLayout menyusun komponen
berdasarkan ukuran defaultmasing-masing, dengan posisi mulai dari kiri ke kanan
dan dari atas ke bawah di dalam container yang digunakan.
FlowLayout dapat memiliki “row
justification”: LEFT, CENTER, atau RIGHT serta “padding” horizontal/vertical.
Secara default, flow layout
menggunakan justification CENTER. Artinya, semua komponen akan disimpan di
posisi tengah-tengah.
FlowLayout merupakan default
untuk JPanel.
Contoh:
JPanel panel1 = new JPanel();
panel1.setLayout(new
FlowLayout());
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:
1. GridLayout():
membuat layout dengan satu kolom per komponen. Hanya satu baris yang digunakan.
2. GridLayout(int
rows, int cols): membuat suatu layout berdasarkan jumlah baris dan kolom yang
diinginkan.
3. 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.
4. GridLayout
menempatkan komponen dengan urutan dari kiri ke kanan dan dari atas ke bawah.
5. GridLayout
akan memaksa setiap komponen untuk menempati space container yang kosong serta
membagi rata ukuran space tersebut.
6. GridLayout
paling cocok digunakan untuk menyusun komponen yang berukuran sama, misalnya 2
buah JPanel berukuran sama di dalam sebuah frame.
Contoh:
frame.add(panel1);
frame.add(panel2);
frame.setLayout(newGridLayout(2,
1));
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.
Contoh: GridLayout(2,0)
Artinya: kita membuat layout
manager dengan 2 baris dan unlimited number untuk kolomnya.
BorderLayout
BorderLayout menyusun komponen
berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER.
Secara optional, kita dapat juga
memberikan paddingdi antara komponen.
BorderLayout merupakan layout
default untuk JWindowdan JFrame.
Karena setiap komponen
diasosiasikan dengan suatu arah geografis, akibatnya layout ini hanya dapat
menangani maksimal 5 komponen.
Pada saat menambahkan suatu
komponen kepada container yang memiliki border layout, kita harus menentukan
secara bersamaan komponen-nya dan posisi-nya.
Contoh:
frame.setLayout(new BorderLayout(
));
frame.add(new
JButton("Button1"), BorderLayout.NORTH );
frame.add(new
JButton("Button2"), BorderLayout.SOUTH );
• BoxLayout
Layout manager yang telah kita
bahas sebelumnya merupakan bagian dari package java.awt. Javax.swingmemiliki
beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout. Layout
manager ini sangat berguna untuk membuat toolbarssederhana atau vertical button
bars.
Cara kerjanya sangat sederhana
yaitu menempatkan komponen dalam satu baris atau satu kolom.
Untuk mempermudah penggunaan
BoxLayout, Swing menyediakan sebuah kelas yang bernama Box yaitu sebuah
container yang secara otomatismemiliki BoxLayout manager.
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
-
CardLayout merupakan layout manager yang mampu
menciptakan efek “tumpukan” komponen.
-
Artinya, layout ini tidak memposisikan komponen
di lokasi-lokasi tertentu di dalam kontainer, melainkan menampilkannya satu
demi satu.
-
Penggunaan CardLayout biasanya untuk membuat
panel yang bersifat custom-tabbed. Namun, sebenarnya kita dapat membuat panel
tersebut dengan menggunakan komponen JTabbedPane.
-
Untuk mempraktekkan cara kerja dan efek
“tumpukan”dari CardLayout ini, kita perlu mempelajari terlebih dahulu mengenai
“event-driven programming” seperti yang ada di.
• GridBagLayout
-
GridBagLayout merupakan layaout manager yang
sangat fleksibel.
-
Layout
ini memampukan kita untuk memposisikan komponen relatif terhadap komponen
lainnya berdasarkan constraint tertentu.
-
Dengan menggunakan GridBagLayout, kita dapat
menciptakan layout apapun juga, tanpa batas.
-
Komponen disusun pada koordinat tertentu pada
sebuah grid yang disebut “logical coordinate”.
-
Logical coordinate berarti bahwa koordinat suatu
komponen ditentukan oleh sekumpulan komponen lainnya.
-
Baris dan kolom dari grid tersebut bersifat
“stretch” yang bergantung pada sizedan constraintyang dimilikiny
-
Walaupun fleksibel, pembuatan GridBag ini
terkadang sangat membingungkan karena kita harus mengatur berbagai sizedan
constraint dari setiap komponen yang digunakan.
-
Sebenarnya, penggunaan GridBagLayout ini jauh
lebih mudah apabila kita menggunakan tools yang mendukung WYSIWYG GUI builder.
(contohnya: NetBeans IDE)
• GroupLayout
Lihat contoh program:
• Group.java
• AlumniForm.java
GroupLayout dapat kita buat
dengan cara mengetik manual seperti membuat layout lainnya. 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());
Tidak ada komentar:
Posting Komentar