JTextArea JComboBox JCheckBox JRadioButton ButtonGroup JList JSpinner
JSlider & JScrollBar JTable
JMenu & JPopupMenu JScrollPane
JSplitPane JTabbedPane
Perluasan dari komponen JTextField
Data tidak dibatasi hanya 1 baris, dapat
beberapa baris
Memiliki fungsi wrapping Constructor :
new JTextArea(int baris, int kolom)
setText(String text)
Mengganti teks yang ada dengan text
append(String text)
Menambahkan data text ke akhir teks yang ada
setLineWrap(boolean)
Menentukan fungsi wrapping berlaku atau tidak
setWrapStyleWord(boolean)
Jika fungsi wrap bernilai true, maka fungsi ini akan
men-wrap berdasarkan kata(true) atau karakter (false)
setFont()
Combo box merupakan campuran antara text field dengan list.
Combo box hanya menampilkan satu baris
teks yang disertai tombol bertanda panah.
List dan Combo box memiliki kemiripan
yaitu memiliki data model yang sama. Keduanya dapat menampung
data model berupa sebuah array.
String[] days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; JComboBox jcb = new JComboBox(days);
Constructor :
JComboBox(array)
Method :
getSelectedItem()
▪ Mendapatkan data String dari salah satu elemen yang dipilih
setEditable(boolean)
getItemCount()
▪ Mendapatkan informasi tentang jumlah elemen data yang dapat dipilih
CheckBox adalah toggle switch yang diberi
label. Setiap kali kita menekan checkbox, maka statusnya akan berganti antara
checked dan unchecked. Swing
mengimplementasikan checkbox sebagai jenis khusus dari button.
JCheckBox check1 = new JCheckBox("Mie Ayam"); JCheckBox check2 = new JCheckBox("Nasi Goreng"); JCheckBox check3 = new JCheckBox("Sate Kambing"); JCheckBox check4 = new JCheckBox("Gule");
Constructor :
JCheckBox(String text, boolean is_selected)
Method :
boolean isSelected()
▪ Mendapatkan status sebuah objek JCheckBox yang dipilih
void setSelected(boolean)
RadioButton hampir menyerupai checkbox, tetapi penggunaannya haruslah secara berkelompok. Apabila kita menekan salah satu radio button di dalam suatu kelompok, maka secara otomatis akan
menonaktifkan radio button yang lain.
Radio button dapat dikelompokkan bersama dengan menggunakan objek dari class ButtonGroup.
ButtonGroup groupRadio = new ButtonGroup();
JRadioButton radio1 = new JRadioButton("Yamaha"); JRadioButton radio2 = new JRadioButton("Suzuki"); JRadioButton radio3 = new JRadioButton("Honda"); JRadioButton radio4 = new JRadioButton("Kawasaki");
groupRadio.add(radio1); groupRadio.add(radio2); groupRadio.add(radio3); groupRadio.add(radio4);
Constructor :
JRadioButton(String text, boolean isSelected) Method :
boolean isSelected()
▪ Mendapatkan status sebuah objek JRadioButton yang dipilih
void setSelected(boolean)
Dengan menggunakan List, kita dapat memilih dari sekumpulan pilihan.
List dapat dikonfigurasi sedemikian rupa sehingga kita hanya dapat memilih satu
pilihan atau dapat memilih beberapa pilihan sekaligus.
Untuk memilih item di dalam List, kita dapat menggunakan kombinasi tombol
mouse dengan tombol Control atau Shift pada keyboard.
String[] days = {"Sunday", "Monday", "Tuesday“,
"Wednesday", "Thursday", "Friday", "Saturday"}; JList list = new JList(days);
Constructor :
JList(array)
Method :
boolean isSelectedIndex(int)
▪ Mengetahui apakah elemen data pada indeks tertentu telah dipilih atau tidak
boolean isSelectedEmpty()
▪ Mengetahui apakah elemen data telah dipilih atau tidak
int getSelectedIndex()
▪ Untuk mendapatkan nomor indeks dari elemen data yang dipilih
Obejct[] getSelectedValues()
▪ Untuk mendapatkan beberapa pilihan
Obejct getSelectedValue()
Spinner sangat berguna untuk menampilkan sebuah
nilai sequence (urutan) seperti angka atau tanggal.
Spinner memiliki kemiripan dengan Combo Box karena menampilkan sebuah nilai dalam suatu text field.
Namun, spinner tidak menampilkan daftar pilihan
melainkan memberikan sepasang tombol panag (atas-bawah) untuk mengubah nilai yang tertera di dalam text field.
Swing menyediakan 3 tipe dasar spinner, yang
direpresentasikan melalui data model yang berbeda:
SpinnerListModel,
SpinnerNumberModel, dan
SpinnerListModel
String[] item = {"Small", "Medium", "Large", "Huge"}; SpinnerListModel listModel = new SpinnerListModel(item); JSpinner spinner = new JSpinner(listModel);
SpinnerDateModel
Calendar cal = Calendar.getInstance(); Date now = cal.getTime();
cal.add(Calendar.YEAR, -50); Date startDate = cal.getTime(); cal.add(Calendar.YEAR, 100); Date endDate = cal.getTime();
SpinnerModel model = new SpinnerDateModel(now, startDate, endDate, Calendar.YEAR);
JSpinner spinner = new JSpinner(model);
SpinnerNumberModel
double initial = 5.0, min = 0.0, max = 10.0, increment = 0.1;
SpinnerNumberModel num = new SpinnerNumberModel(initial, min, max, increment); JSpinner spinner = new JSpinner(num);
JSlider dan JScrollBar merupakan komponen Swing yang mirip cara kerjanya.
Kita dapat menentukan orientasinya:
HORIZONTAL atau VERTICAL
Kita dapat menentukan juga nilai minimum,
maximum, dan initial.
JSlider memiliki tick mark, yaitu garis yang
menunjukan suatu nilai tertentu sepanjang slider. Ada 2 jenis tick mark: major dan minor, contoh:
slider.setMajorTickSpacing(48); slider.setMinorTickSpacing(16); slider.setPaintTicks(true);
JTable is a Swing Componenet which is used to show the datas in table
format. It contains many custom models
Usually, JTable uses JScrollPane container instead of JPanel The column headers are displayed by a separate component, a
JTableHeader. If the JTable is put inside a JScrollPane, it adds the header automatically as column header of the JScrollPane.
String[][] rowData = {{"Row 1-Col 1","Row 1-Col 2","Row 1-Col 3"}, {"Row 2-Col 1","Row 2-Col 2","Row 2-Col 3"}, {"Row 3-Col 1","Row 3-Col 2","Row 3-Col 3"}}; String[] colNames = {"Column 1","Column 2","Column 3"};
JTable table = new JTable(rowData, colNames); table.setSize(80, 350);
JScrollPane pane = new JScrollPane(table);
pane.setSize(table.getHeight(), table.getWidth()); add(pane);
JMenu adalah sebuah menu standar yang bersifat
pull-down.
Menu dapat berisi menu lain yang disimpan sebagai
submenu item. Hal ini memungkinkan kita
membuat suatu struktur menu yang kompleks.
Kita dapat menyimpan berbagai komponen di
dalam menu (seperti checkbox, radiobutton, dll)
Untuk menyimpan menu
dalam bentuk horizontal
bar, kita gunakan JMenuBar. Kita dapat meletakan
JMenuBar di mana saja: top,
Kita dapat menggunakan keyboard untuk mengakses menu. Ada 2 cara:
Mnemonics
▪ Berupa satu karakter di dalam nama menu
▪ Untuk mengaksesnya, kita menekan tombol “Alt + karakter“ mnemonic-nya
▪ Menu items juga dapat memiliki mnemonics.
Accelerator
▪ Accelerator merupakan kombinasi keyboard untuk memilih menu item tanpa perlu ditunjukkan isi menu yang
bersangkutan.
▪ Contoh: Ctrl-C biasa digunakan sebagai shortcut untuk menu Copy item di dalam menu Edit.
Pop up menu biasa disebut juga sebagai
“context menu” merupakan menu yang
dapat muncul di mana saja tergantung
posisi mouse. (Untuk windows, biasa diaktifkan menggunakan klik kanan)
Cara pembuatannya mirip dengan JMenu
biasa, tetapi kita tidak menempelkannya
JScrollPane merupakan suatu container yang dapat
menampung satu komponen. Dengan kata lain, JScrollPane berfungsi untuk membungkus suatu komponen lain.
Secara default, apabila komponen yang dibungkusnya
lebih besar dari JScrollPane itu sendiri, maka JScrollPane akan menyediakan scrollbars.
Pada saat membuat JScrollPane, kita dapat menentukan
kondisi untuk tampilan scrollbars-nya. Hal ini dikenal
dengan nama “scrollbar display policy” yang berlaku untuk scrollbar horizontal maupun vertical.
Constants (options) Description
HORIZONTAL_SCROLLBAR_AS_NEEDED VERTICAL_SCROLLBAR_AS_NEEDED
Displays a scrollbar only if the wrapped component doesn't fit.
HORIZONTAL_SCROLLBAR_ALWAYS VERTICAL_SCROLLBAR_ALWAYS
Always shows a scrollbar, regardless of the contained component's size.
HORIZONTAL_SCROLLBAR_NEVER VERTICAL_SCROLLBAR_NEVER
Never shows a scrollbar, even if the contained component won't fit. If you use this policy, you should provide some other way to manipulate the JScrollPane.
JSplitPane merupakan container khusus yang
dapat menampung dua komponen.
Masing-masing komponen disimpan di dalam
sub-pane tersendiri.
Terdapat sebuah splliter bar yang berfungsi
untuk mengubah ukuran kedua subpane tersebut.
JTabbedPane merupakan container yang memiliki tab berlabel.
Setiap tab memiliki sebuah nama. Untuk menambahkan sebuah tab ke dalam
JTabbedPane, kita tinggal gunakan method
addTab().
Hati-hati: walaupun JTabbedPane hanya
menunjukkan satu set komponen sekali waktu, tetap harus diketahui bahwa semua komponen di tab lainnya tetap “hidup” dan berada di
Apabila kita menginginkan aplikasi windows di dalam
windows, kita dapat menggunakan JDesktopPane dan
JInternalFrame.
Internal frame ini dapat dipindahkan lokasinya (drag),
di-resize, dijadikan icon, serta di-maximize.
Internal frame ini sebenarnya merupakan suatu container
seperti biasanya. Artinya kita dapat menyimpan berbagai komponen dan data di dalamnya.