Tuesday, June 5, 2007

GraPHiC uSEr InTErFaCE ( GUI )

Di Java, GUI diimplement dari class javax.swing dan packages java.awt

Untuk membuat frame window, kita bisa menggunakan class JFrame.
JFrame defaultJFrame;
defaultJFrame = new JFrame();
defaultJFrame.setVisible(true);

Content pane adalah tempat untuk meletakkan tombol, label, scroll bars, dan lainnya. Dan kita dapat mengaksesnya dengan memanggil method getContentPane.

Cara kita untuk mengubah warna background sebuah content pane :
Container contentPane = getContentPane();
contentPane.setBackground(Color.BLUE);
----> untuk mengubah warna background menjadi warna biru

Beberapa class dari swing GUI adalah :
- JLabel yang berguna untuk menampilkan label seperti image atau text.
Ketika membuat label image, kita harus menambahkan ImageIcon.
JLabel textLabel = new JLabel("Please enter your name");
contentPane.add(textLabel);
-----> untuk menampilkan text

Jlabel imgLabel = new JLabel (new ImageIcon ("cat.gif"));
contentPane.add(imgLabel);
------> untuk menampilkan image

- JTextField yang berguna bagi user untuk memasukkan sebuah kalimat.
getText berfungsi untuk mendapatkan text yang telah dimasukkan oleh user.
JTextField input = new JTextField();
contentPane.add(input);

- JTextArea yang berguna bagi user untuk memasukkan banyak kalimat. Dan ini juga berfungsi untuk menampilan banyak uneditable text.
setText berfungsi untuk memasukkan isi kalimat
append berfungsi untuk menambahkan kalimat dari kalimat sebelumnya
JTextArea textArea = new JTextArea();
......
textArea.setText("Hello\n");
textArea.append(" the lost ");
textArea.append("world");

-----> Hello
the lost world

Di JTextArea, kita juga bisa menambahkan scrool bars dengan menambahkan object JScrollPane.
JTextArea textArea = new JTextArea();
.......
JScrollPane scrollText = new JscrollPane( textArea );
......
contentPane.add(scrollText);

Ada 2 cara untuk memasukkan GUI ke dalam content pane sebuah frame :
a. Menggunakan layout manager :
- FlowLayout
Dengan menggunakan layout ini, maka komponen GUI dapat diletakkan dari kiri ke kanan. Ketika komponen tidak cukup untuk diletakkan dalam satu baris, maka akan diletakkan di baris selanjutnya. Sebagai defaultnya, komponen diletakkan di pusat frame. Ketika ukuran frame nya diubah, maka penempatan komponennya disesuaikan dengan ukuran frame tersebut.

- BorderLayout
Layout ini dibagi dalam 5 bagian : pusat, utara, selatan, timur, dan barat.
Bagian utara dan selatan dapat membesar dan mengecil hanya untuk tinggi dari yang dibatasi.
Bagian timur dan barat dapat membesar dan mengecil hanya untuk lebar dari wilayah yang dibatasi.
Bagian pusat dapat membesar dan mengecil untuk lebar dan tinggi wilayah yang dibatasinya.
Tidak semua wilayah dibatasi dengan border ini.

- GridLayout
Layout ini menempatkan komponen frame dengan ukuran yang sama yang ditempatkan dari atas ke bawah dan dari kanan ke kiri. Dan banyaknya baris dan kolom disesuaikan dengan ukuran frame.

b. Menggunakan absolute positioning
- null layout manager

Komponen GUI yang lainnya :
- JCheckBox
- JRadioButton
- JComboBox
- JList
- JSlider

Di package javax.swing juga berisi class menu, seperti :
- JMenuBar adalah sebuah bar di mana semua menu ditempatkan. Ada satu menu bar di tiap frame.
- JMenu ( seperti File atau Edit ) adalah sebuah kelompok dari pilihan menu. Dan JMenuBar memungkinkan untuk memiliki lebih dari satu JMenu.
- JMenuItem ( seperti Copy, Cut, atau Paste ) adalah pilihan menu dari JMenu. Dan hanya JMenuItem yang menghasilkan events.

No comments: