Perluasan dari komponen JTextField Data tidak dibatasi...

Post on 22-Apr-2018

230 views 4 download

Transcript of Perluasan dari komponen JTextField Data tidak dibatasi...

JTextArea JComboBox JCheckBox JRadioButton ButtonGroup JList JSpinner JSlider & JScrollBar JTable JMenu & JPopupMenu JScrollPane JSplitPane JTabbedPane JDesktop / JInternalFrame

Perluasan dari komponen JTextField Data tidak dibatasi hanya 1 baris, dapat

beberapa baris Memiliki fungsi wrapping Constructor :

new JTextArea(int baris, int kolom)

new JTextArea(String text, 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() setEditable(boolean)

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)

▪ Men-set pemilihan dengan true atau false

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)

▪ Men-set pemilihan dengan true atau false

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() ▪ Untuk mendapatkan satu pilihan

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

SpinnerDateModel.

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);

spinner.setBounds(10, 90, 100, 30);

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, bottom, atau middle.

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 pada JMenuBar.

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 memori.

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.