Kamis, 03 Desember 2015

komponen JList

Sejujurnya, Aku belum pernah menulis JList. MVC yang pernah kupelajari hanyalah JTree dan JTable. Tapi karena JList juga termasuk MVC, maka kuputuskan untuk memasukkannya ke dalam diary-ku ini. Itung-itung juga belajar, he..he..he..
JList relatif paling mudah dimengerti dari pada JTable dan JTree.
Nggak percaya? Aduh.. aduh… kapan kamu akan percaya Aku? Wis, langsung aja kuperkenalkan… Ladies and gentlemen, please welcome:
Jeeeeeeee Liiiiiiist!!!!!!

Kamu bisa membangun JList melalui empat konstruktornya:

- JList() akan membentuk sebuah JList yang kosong ( buat apa? ).
- JList ( Object[] data ) akan membentuk sebuah JList yang berisi data pada array Object[ ] data.
- JList ( Vector data ) akan membentuk JList dengan data yang ada pada Vector. Vector adalah array dinamis pada Java yang terdapat dalam package java.util.
- JList ( ListModel listModel ) akan membentuk JList dengan sebuah ListModel. ListModel adalah implementasi dari MVC sebenar-benarnya. Kita akan bahas ini lebih mendetail nanti

JList tidak mendukung scrolling secara langsung. Untuk mendapatkannya, kamu harus memasukkannya ke dalam JScrollPane. JList mendukung tiga macam cara seleksi yaitu: seleksi tunggal ( single selection ), single-interval selection, dan multiple-interval selection.
Seleksi tunggal, kita hanya boleh memilih satu dari sekian banyak daftar di List. Single-Interval Selection, kita boleh memilih lebih dari satu, tetapi harus berurutan. Multiple-Interval Selection, kita boleh memilih memilih lebih dari satu dan boleh tidak berurutan


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class ListDemo extends JFrame {
private JList list1;
private JList list2;
private JComboBox combo1;
private JComboBox combo2;

private JLabel statusBar = new JLabel ( "Status Bar" );
public ListDemo()
{
super ( "List Demo" );
createGUI ();
setEventHandler ();
}

private void createGUI()
{
//list dengan data array
String[] listData1 = {"Apel", "Jambu", "Mangga", "Manggis","Pisang", "Jeruk","Semangka","Pepaya","Kelapa", "Meloon" };
list1 = new JList ( listData1 );
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );

//list dengan data vector
Vector listData2 = new Vector ();
listData2.add ( "Michael Schumacher" );
listData2.add ( "Kimi Raikonnen" );
listData2.add ( "Rubens Barichello" );
listData2.add ( "Juan Pablo Montoya" );
listData2.add ( "Ralf Schumacher" );
listData2.add ( "David Coulthard" );
listData2.add ( "Jacques Villeneuve" );
listData2.add ( "Ayrton Senna" );
listData2.add ( "Alain Prost" );
listData2.add ( "Mika Hakkinen" );
list2 =  JList ( listData2 );
list2.setnewSelectionMode (
ListSelectionModel.SINGLE_SELECTION );

//combo box data
String[] selection = {"SINGLE_SELECTION","SINGLE_INTERVAL_SELECTION","MULTIPLE_INTERVAL_SELECTION"};
combo1 = new JComboBox ( selection );
combo2 = new JComboBox ( selection );

//pasang ke kanvas
JScrollPane scrPane1 = new JScrollPane ( list1 );
scrPane1.setPreferredSize ( new Dimension (220, 160 ) );
JPanel panelKiri = new JPanel ();
panelKiri.add ( combo1, BorderLayout.NORTH );
panelKiri.add ( scrPane1, BorderLayout.CENTER );
JScrollPane scrPane2 = new JScrollPane ( list2 );
scrPane2.setPreferredSize ( new Dimension (220, 160 ) );
JPanel panelKanan = new JPanel ();
panelKanan.add ( combo2, BorderLayout.NORTH );
panelKanan.add ( scrPane2, BorderLayout.CENTER );
JPanel listPanel = new JPanel (new GridLayout ( 1, 2 ) );
listPanel.add ( panelKiri );
listPanel.add ( panelKanan );
Container contPane = getContentPane ();
contPane.add ( listPanel, BorderLayout.CENTER );
contPane.add ( statusBar, BorderLayout.SOUTH );
setDefaultCloseOperation ( EXIT_ON_CLOSE );
setSize ( 450, 250 );
setVisible ( true );
}

private void setEventHandler()
{
//combo box kiri
combo1.addActionListener ( new ActionListener ()
{
public void actionPerformed( ActionEvent e ) {
String text = ( String )
combo1.getSelectedItem ();
if ( text.equals ( "SINGLE_SELECTION" ) ) {
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );
}
else if ( text.equals ("SINGLE_INTERVAL_SELECTION" ) ) {
list1.setSelectionMode (ListSelectionModel.SINGLE_INTERVAL_SELECTION );
}
else {
list1.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
}
}
} );

//combo box kanan
combo2.addActionListener ( new ActionListener () {
public void actionPerformed( ActionEvent e ) {
String text = ( String )
combo2.getSelectedItem ();
if ( text.equals ( "SINGLE_SELECTION" ) ) {
list2.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );
}
else if ( text.equals ("SINGLE_INTERVAL_SELECTION" ) ) {
list2.setSelectionMode (ListSelectionModel.SINGLE_INTERVAL_SELECTION );

}
else {
list2.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
}
}
} );

//list listener
list1.addListSelectionListener (new ListSelectionListener () {
public void valueChanged( ListSelectionEvent e )
{
int[] indices = list1.getSelectedIndices ();
Object[] selectedItems = list1.getSelectedValues ();
String display = "";
for ( int i = 0; i < indices.length; i++ ) {
display += ( String ) selectedItems[i] +" ";
}
statusBar.setText ( display );
}
} );
list2.addListSelectionListener (new ListSelectionListener () {
public void valueChanged( ListSelectionEvent e )
{
int[] indices = list2.getSelectedIndices ();
Object[] selectedItems = list2.getSelectedValues ();
String display = "";
for ( int i = 0; i < indices.length; i++ ) {
display += ( String ) selectedItems[i] +" ";
}
statusBar.setText ( display );
}
} );
}
//launcher
public static void main( String[] args ) {
new ListDemo ();
}
}


dan hasilnya adalah... engg ingg enggg


sekian tentang membuat komponen JList, tunggu post selanjutnya

Tidak ada komentar:

Posting Komentar