Perluasan dari komponen JTextField Data tidak dibatasi...

34

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

Page 1: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 2: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 3: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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)

Page 4: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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)

Page 5: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 6: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 7: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 8: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 9: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 10: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 11: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 12: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 13: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 14: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 15: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 16: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 17: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 18: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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

Page 19: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 20: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 21: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 22: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 23: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 24: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 25: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 26: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 27: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 28: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 29: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 30: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 31: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 32: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control

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.

Page 33: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control
Page 34: Perluasan dari komponen JTextField Data tidak dibatasi ...si.itmaranatha.org/v2/attachments/article/341/02_Komponen_Swing_II.pdfMemiliki fungsi wrapping ... mouse dengan tombol Control