Komponen Swing I
Object Oriented Pemrograman yang mendukung konsep objek.
(inheritance, capsulation, polymorphism)
WORE (Write Once Run Everywhere)
Program hasil kompilasi dapat dijalankan pada
berbagai OS.
Penerapan Luas Desktop Application, Applet, Server Side
Programming, Mobile Application.
Inheritance (pewarisan) Extends single inheritance Implements multi inheritance
Encapsulation (pengaturan hak akses) public, private, protected
Polymorphism Satu nama berbeda fungsi
Setiap statement program diakhiri dengan semicolon (;) kecuali block Bersifat CASE SENSITIVE Nama Class harus sama dengan nama File Mendefinisikan minimal satu class Class hanya memiliki satu main method Block program dengan {} Komentar dengan menggunakan /*…*/ atau //
Berbagai program sudah menggunakan GUI (Graphical User Interface) sehingga menarik dan user friendly Untuk JAVA, komponen aplikasi desktop adalah komponen Swing (package javax.swing) dan AWT (package java.awt)
Component Layout Event Handling
radio button
frame
checkbox label
button
Berguna untuk menentukan posisi setiap komponen yang kita buat. Susunan komponen di layar :
Absolute : koordinat x, y ditentukan untuk setiap komponen. Relatif terhadap posisi komponen lain / ukuran,
resolusi layar, font yang digunakan, dll.
Button Clicked by User
Appropriate action taken
Event generated by System
GUI Programming, terdapat 3 libraries yang disediakan oleh Java, yaitu : AWT (Abstract Window Toolkit) an old library, present in the first Java release. SWING an inproved library added later, componen name start from J, lightweight, dibangun diatas AWT.
Package terdapat di java.awt. Class Component : Mempunyai method paint untuk menggambar
component pada layar.
Class Container : Kumpulan dari komponen yang saling berhubungan. Mempunyai method add untuk menambah
komponen.
Terdapat dua Container utama : Window : sebuah window bebas di layar yang tidak
tergantung pada Container lain. Dua tipe Window Container :
▪ Frame : window yang memiliki title dan sudut yang dapat di resize. ▪ Dialog : window yang tidak punya menu bar dan tidak dapat di resize.
Panel : harus berada di dalam container lain,
mendefinisikan area yang dapat di isi komponen lain.
Komponen-Komponen GUI Swing, diantaranya :
ket:
w:400 h :400
JFrame merupakan komponen top-level bagi aplikasi desktop. Frame berfungsi sebagai penampung komponenkomponen lainnya. 2 cara membuat Jframe : Membuat class baru yang memiliki sifat-sifat JFrame dengan cara proses inheritance. Mendefinisikan sebuah objek dari class JFrame. Tetapi untuk melakukan hal lain di Swing, Anda harus membuat frame terlebih dahulu.
void setLayout(null) Layout manager diset null artinya penempatan komponen
bebas di mana saja dengan menentukan koordinat x dan y. Java menyediakan beberapa Layout manager yang dapat dipakai: FlowLayout, BorderLayout, CardLayout, BoxLayout, GridLayout, GridBagLayout.
void setSize(int width, int height) Menentukan ukuran frame window.
void setVisible(boolean)
Menentukan frame window terlihat atau tidak. Secara default
bernilai false.
void setTitle(String title) void setResizable(boolean) void setLocationRelativeTo(null) Cara termudah untuk menempatkan lokasi frame window supaya berada tepat di tengah layar. void setLocation(int x, int y) Cara untuk menempatkan lokasi frame sembarang terhadap window. void add(objek komponen) Menempatkan objek komponen seperti JLabel, JButton, dan komponen lainnya ke dalam frame ini.
Panel adalah suatu container yang dirancang untuk menampung sekumpulan komponen sedemikian rupa sehingga kumpulan tersebut dapat ditampilkan bersama-sama di dalam suatu frame. Cara yang lazim dilakukan dalam menampilkan sekumpulan komponen kontrol seperti text field, label, dan button adalah dengan menambahkan komponen-komponen tersebut ke dalam sebuah panel, kemudian panel tersebut ditambahkan ke dalam sebuah frame. Box with blue border indicates a JPanel without anything inside of it.
JFrame has default layout manager : Border Layout JPanel has default layout manager : Flow Layout Pertemuan 1,2,3 kita akan tetap menggunakan “setLayoutManager(null);” JFrame frame = new JFrame(); frame.setLayout(null); JPanel panel = new JPanel(); panel.setLayout(null);
How to create a JPanel like this ?
1. panel.setBorder(BorderFactory.createLineBorder (Color.blue));import javax.swing.BorderFactory; and import java.awt.Color; 2. panel.setBackground(new Color(0, 255, 0));
Teknik Umum : Buatlah sebuah JFrame untuk antarmuka aplikasi utama, Lalu, buatlah JPanel, Tempatkan semua komponen Swing di dalam JPanel
tersebut, Tempatkan JPanel ke dalam JFrame, setVisible true pada JFrame, Buat objek JFrame di main method.
A label is a component that simply displays text. Labels are used for a variety of purposes: to display captions for other controls such as text fields or combo boxes, to display informational messages, or to show the results of a calculation or a database lookup.
A label can also display an image, or it can display both an image and some text. And we have complete control over the appearance of the text We can specify the font, size, whether the text is bold, italic, or underlined, what color the text is displayed as, and so on.
void getText(String text) Mendapatkan data text yang tertulis sebagai title
objek JLabel
void setText(String judul) Menset teks sebuah JLabel
void setFont(“jenis font”, 0/1/2, int Ukuran) Menentukan jenis font yang digunakan di JLabel, style
huruf (o:plain, 1:bold, 2:italic) dan ukuran font
void setAlignmentHorizontal(int) Menentukan format text apakah rata kiri (JLabel.LEFT), rata kanan (JLabel.RIGTH), atau rata tengah (JLabel.CENTER) void setBounds(int x, int y, int width, int height) Menentukan penempatan objek JLabel di dalam suatu JPanel atau JFrame dengan menset koordinat x dan y serta lebar dan tingginya. Posisi paling pojok kiri atas adalah (0,0). Jika lebar label tidak mencukupi untuk teksnya, maka akan diakhiri dengan teks “…”. void setForeground(Color) Menentukan warna huruf yang akan digunakan. Defaultnya adalah hitam. Dapat menggunakan konstanta seperti Color.red, Color.blue, Color.green, dll. Untuk warna lain dapat menggunakan format : ▪ new Color(int R, int G, int B) void setBackground(Color)
Merupakan komponen interaktif untuk mendapatkan data dari user. Data yang disimpan berupa String Untuk mengubah data dapat menggunakan teknik Parsing : int count = Integer.parseInt(textField1.getText()); short count = Short.parseShort(textField1.getText()); long count = Long.parseLong(textField1.getText()); byte count = Byte.parseByte(textField1.getText()); float count = Float.parseFloat(textField1.getText()); double count = Double.parseDouble(textField1.getText());
JTextField(int) Konstruktor dari class JTextField di mana parameter bertipe int untuk menentukan panjang JTextField String getText() Mendapatkan teks yang tersimpan di JTextField void setText(String) Menampilkan data berupa teks atau String di JTextField. Untuk mengosongkan data di JTextField cukup dengan menset nilai “”. void setForeground(Color) void setBackground(Color) void setFont(Font) void setEditable(boolean) Menentukan apakah objek ini dapat diedit atau tidak. Secara default bernilai true. void setBounds(int x, int y, int width, int height)
Next to labels, the Swing component you use most is the JButton component, which creates a button the user can click.
void setText(String teks) Menentukan teks yang akan ditampilkan pada tombol.
void setFont(“jenis font”, int tipe, int size) void setBounds(int x, int y, int width, int height) void addActionListener(this) Mengaktifkan JButton untuk melakukan suatu proses
pada saat di klik. Untuk mengaktifkan method ini suatu class harus mengimplementasikan interface ActionListener dan juga method public void actionPerfomrd(ActionEvent ae)
Kita dapat menambahkan sebuah gambar kepada JLabel dan JButton dengan cara membuat dan men-set objek ImageIcon pada label dan button tersebut. Contoh membuat label bergambar : ImageIcon gambar1 = new ImageIcon(“icon1.gif”); JLabel label = new JLabel(gambar);
Contoh membuat button bergambar : JButton button = new JButton(new ImageIcon(“icon2.gif”));
cara lain, gunakan methode “setIcon()”
Salah satu feature Swing adalah dapat menginterpretasi teks HTML di dalam JLabel dan JButton. Contoh :
JButton htmlButton = new JButton(“S
MALLCAPITALS”); String htmlTable = “”; JButton htmlButton2 = new JButton(htmlTable);
JPasswordField behaves just like a JTextField (it's a subclass),
except every character typed is echoed as the same, obfuscating character, typically an asterisk. The creation and use of JPasswordField is basically the same as for JTextField. If you find asterisks distasteful, you can tell the JPasswordField to use a different character using the setEchoChar( ) method. Normally, you would use getText( ) to retrieve the text typed into the JPasswordField. This method, however, is deprecated; you should use getPassword( ) instead. The getPassword( ) method returns a character array rather than a String object. This is done because character arrays are a little less vulnerable than Strings.
The Timer class provides a mechanism to generate timed events. It has properties and events, and thus can be used in application builders that understand JavaBeans. It fires an ActionEvent at a given time. The timer can be set to repeat, and an optional initial delay can be set before the repeating event starts.
Class Timer digunakan untuk menghasilkan kejadian / event setiap selang waktu tertentu dalam satuan ms. Kejadian ini dapat dideteksi dengan mengimplementasikan interface ActionListener. Dengan demikian di dalam program yang menggunakan class Timer agar bisa dideteksi aktivitas objek Timer-nya, maka program class haru mendefinisikan method actionPerformed() seperti pada JButton.
Berbeda dengan objek JButton yang eventnya terdeteksi pada saat di klik, objek Timer eventnya hanya bisa terdeteksi secara periodik setiap selang waktu tertentu sebagaimana ditentukan pada waktu objek Timer dibuat. Method standar: Timer(miliseconds, this) ▪ Konstruktor untuk membuat objek timer dengan menset interval waktunya. void start() ▪ Memulai mengaktifkan timer itu sendiri, dan setiap selang waktu tertentu event dari objek Timer bisa dideteksi. void stop() ▪ Mengakhiri proses suatu objek Timer, sehingga eventnya tidak bisa dideteksi lagi.
Dialog biasanya digunakan untuk menampilkan informasi kepada user atau menanyakan sesuatu. Dialog dapat diakses dengan menggunakan static methods yang terdapat pada class JOptionPane.
Jenis Dialog
Fungsi
- void showMessageDialog(null, “informasi”) - void showMessageDialog(null, “informasi”, “title”, jenis_tombol, jenis_ikon)
Menampilkan suatu pesan kepada user, biasanya disertai dengan sebuah tombol OK
-int showConfirmDialog(null, “informasi”) -int showConfirmDialog(null, “informasi”, “title”, jenis_tombol, jenis_ikon)
Menanyakan sebuah pertanyaan dan menampilkan tombol jawaban: Yes, No, dan Cancel
String showInputDialog(“Judul”)
Meminta user untuk memasukkan suatu String
Option dialogs
Tipe yang paling umum. Kita dapat menyimpan berbagai komponen di dalamnya.
Jenis tombol yang dapat digunakan :
JOptionPane.DEFAULT_OPTION JOptionPane.OK_CANCEL_OPTION JOptionPane.YES_NO_OPTION JOptionPane.YES_NO_CANCEL_OPTION
Jenis ikon yang dapat digunakan :
JOptionPane.QUESTION_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.ERROR_MESSAGE